Scrapy。蟒蛇。将从Xpath中提取的数据与字符串进行比较?

时间:2015-10-28 15:59:18

标签: python xpath scrapy scrapy-spider

我使用 scrapy 从网页抓取网页一些值并尝试检查该值是否为2015但我似乎无法正确地将该值与字符串'2015'进行比较。

这是我的Python代码  `

Number      Rounded number to nearest 10
303.9       300
285         290 - min
443         440
446.8       450
461.1       460 - max
428.83      430
428.545     430
445.835     450
427.215     430
429.97      430

Unique groups of 10     
300     
290     
440     
450     
460     
430     

Answer = 6 groups

即使提取的值是2015,它仍然打印否。

非常感谢帮助,谢谢

2 个答案:

答案 0 :(得分:1)

这是因为当您在选择器中使用.xpath.css时,您得到的是SelectorList,您可以想象,list不是string i.xpath('./******/******/text()').extract()[0] 。也许你只是在这个列表中得到一个元素,所以要比较你可以使用:

''.join(i.xpath('./******/******/text()').extract())

i.xpath('./******/******/text()').extract_first()

或更好

exec dataMigration

答案 1 :(得分:0)

我的猜测是你从extract()调用而不是字符串中取回列表。如果您只想要一个字符串,请尝试拨打extract_first(),然后将其与'2015'字符串进行比较。

来源:http://doc.scrapy.org/en/latest/topics/selectors.html

  

要实际提取文本数据,您必须调用选择器   .extract()方法,如下:

>>> response.xpath('//title/text()').extract()
[u'Example website']
     

如果您只想提取第一个匹配的元素,可以调用   selector .extract_first()

>>> response.xpath('//div[@id="images"]/a/text()').extract_first()
u'Name: My image 1 '