[英]Scrapy empty .json file return
我正在嘗試從網站獲取數據。
一切似乎都是正確的(在 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
你可以幫幫我嗎? 提前抱歉,這是我的第一個程序...
您忘記將 contains() function 添加到 xpath 中:
//ul[contains(@class, 'level0 submenu')]
試試這樣:
for cat in response.xpath("//ul[contains(@class, 'level0 submenu')]/li/a"):
...
所以蜘蛛看起來像:
import scrapy
class ToScrapeSpiderXPath(scrapy.Spider):
name = 'categories'
start_urls = ['https://stopcovid19.fr']
def parse(self, response, **kwargs):
for cat in response.xpath("//ul[contains(@class, 'level0 submenu')]/li/a"):
yield {
'name': cat.xpath("./span/text()").get(),
'link': cat.xpath("./@href").get(),
}
並像這樣運行腳本:
scrapy crawl categories -o file.json
++++ 編輯 ++++ 代碼運行良好,但蜘蛛沒有保存在正確的文件中......感謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.