大家早上好
使用Scrapy时出现问题。我想从以下URL获取表的“ commune”列中包含的数据:https://fr.wikipedia.org/wiki/Liste_des_communes_de_Belgique_par_population
这是我的蜘蛛:
import scrapy
import json
class communes_spider(scrapy.Spider):
name = "communes"
def start_requests(self):
urls = [
'https://fr.wikipedia.org/wiki/Liste_des_communes_de_Belgique_par_population'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
yield response.css('table.wikitable td a::text').getall()
我正在使用终端爬网页面:
scrapy crawl communes
但是,它不输出“ commune”列的数据。因此,我无法将它们存储在json文件中。有人对这里发生的事情有见解吗?
谢谢!
答案 0 :(得分:3)
蜘蛛必须返回Request,BaseItem,dict或None,但您要返回列表
请将您的代码更改为此
import scrapy
import json
class communes_spider(scrapy.Spider):
name = "communes"
def start_requests(self):
urls = [
'https://fr.wikipedia.org/wiki/Liste_des_communes_de_Belgique_par_population'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
yield {'communes':response.css('table.wikitable td a::text').getall()}