Scrapy蜘蛛Xpath的选择
问题描述:
我怎么能得到这个使用这个工作:Scrapy蜘蛛Xpath的选择
蜘蛛
for sel in response:
item = DmozItem()
item['title'] = sel.xpath("//td[@class='nblu tabcontent']/a/big/text()").extract()
item['link'] = sel.xpath("//td[@class='nblu tabcontent']/a/@href").extract()
yield item
,而不是使用这样的:
for sel in response.xpath("//td[@class='nblu tabcontent']"):
item = DmozItem()
item['title'] = sel.xpath("a/big/text()").extract()
item['link'] = sel.xpath("a/@href").extract()
yield item
第一个显然行不通寻找一种替代方案,以第一代码的形式与第二代代码做同样的事情。
感谢,查理
答
其实,你可以如下
item = DmozItem()
item['title'] = response.xpath("//td[@class='nblu tabcontent']/a/big/text()").extract()
item['link'] = response.xpath("//td[@class='nblu tabcontent']/a/@href").extract()
yield item
答
使用XPath功能contains()
直接编码。
//td[contains(@class, 'nblu') and contains(@class, 'tabcontent')]
+0
@CharlieC是否有帮助? – 2015-04-20 16:25:25
第二个代码段出了什么问题?对不起,但我不明白这个问题。谢谢。 – alecxe 2015-02-08 03:04:22
同意@alecxe您的问题令人困惑,但请注意,在第一种情况下,具有多个空格的@ class ='nblu tabcontent''不等同于具有一个空格的'@ class ='nblu tabcontent''。 – kjhughes 2015-02-08 03:08:57
道歉,额外的空间是错字。记住@alecxe,mysql没有足够的parametres问题你的答案,再次面对同样的问题,如果我dint使用for循环 – CharlieC 2015-02-08 16:05:37