2013-08-12 5 views
0

Я пытаюсь получить текст внутри тега href. В принципе, я пытаюсь ломом андроид ошибки в https://code.google.com/p/android/issues/listselect ("a/text()"). Extract() не работает

<td class="vt col_4" width="100%" onclick="if (!cancelBubble) _goIssue(0)"> 
<a onclick="cancelBubble=true" href="../../android/issues/detail id=58866&amp;colspec=ID Type Status Owner Summary Stars"> 

compass not showing right direktion 

</a> 
</td> 

Это мой код:

class MySpider(BaseSpider): 
name = "craig" 

start_urls = ["https://code.google.com/p/android/issues/list"] 

def parse(self, response): 
    hxs = HtmlXPathSelector(response) 
    titles = hxs.select("//td[@class='vt col_4']") 
    items = [] 
    for titles in titles: 
     item = CraiglistSampleItem() 
     item ["id"] = titles.select("a/text()").extract() 
     item ["type"] = titles.select("a/@href").extract() 
     items.append(item) 
    return items 

Я проверил его на другой HREF и она отлично работает. Кто-нибудь знает, почему это не будет работать на href, где отображается сводка ошибок выше. Благодаря!

ответ

1

Ваша переменная итерации имеет то же имя, что и переменная, которую вы повторяете, что не является хорошей идеей. Кроме того, вы должны выбрать каждый другой ряд:

class MySpider(BaseSpider): 
    name = "craig" 
    start_urls = ["https://code.google.com/p/android/issues/list"] 

    def parse(self, response): 
     hxs = HtmlXPathSelector(response) 
     table = hxs.select("//table[@id='resultstable']") 

     for title in table.select("tr/td[@class='vt col_4'][2]"): 
      item = CraiglistSampleItem() 
      item["id"] = title.select("a/text()").extract() 
      item["type"] = title.select("a/@href").extract() 

      yield item 
+0

спасибо. Но вы попробовали? он не работает – user2537643

+0

@ user2537643: Упс, забыл косую черту. Должен работать сейчас. – Blender

+0

спасибо .. это работает! – user2537643

Смежные вопросы