Scrapy-输出不出现

时间:2019-03-20 10:37:52

标签: python scrapy web-crawler

大家早上好

使用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文件中。有人对这里发生的事情有见解吗?

谢谢!

1 个答案:

答案 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()}