我使用 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,它仍然打印否。
非常感谢帮助,谢谢
答案 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 '