我正在尝试从网站获取数据。
一切似乎都是正确的(在shell上测试了xpath):
>>> scrapy shell "https://stopcovid19.fr/"
>>> for cat in response.xpath("//ul[@class='level0 submenu']/li/a"):
{
'name': cat.xpath("./span/text()").get(),
'link': cat.xpath("./@href").get(),
}
代码如下:
import scrapy
class ToScrapeSpiderXPath(scrapy.Spider):
name = 'categories'
start_urls = ['https://stopcovid19.fr']
def parse(self, response):
for cat in response.xpath("//ul[@class='level0 submenu']/li/a"):
yield {
'name': cat.xpath("./span/text()").get(),
'link': cat.xpath("./@href").get(),
}
但是当我尝试用下面的代码在一个json文件上得到结果时,这个文件是空的。
scrapy crawl categories -O categories.json
你能帮我吗?事先抱歉,这是我第一个节目...
1条答案
按热度按时间cyvaqqii1#
您忘记在xpath中添加contains()函数:
这样试试看:
所以蜘蛛看起来像:
并运行如下脚本:
++++ EDIT ++++代码运行良好,但蜘蛛没有保存在正确的文件中...谢谢您的帮助!!