select( "a/text()" ).extract() 不起作用



我正在尝试获取href标记内部的文本。基本上,我正试图在https://code.google.com/p/android/issues/list

<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上不起作用吗。谢谢

您的迭代变量与您正在迭代的变量同名,这不是一个好主意。此外,您必须每隔一行选择一次:

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

最新更新