【问题标题】:Scrapy - Output does not appearScrapy - 输出不出现
【发布时间】:2019-03-20 10:37:52
【问题描述】:

大家早上好,

我在使用 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

但是它不输出“公社”列的数据。因此我不能将它们存储在 json 文件中。有人对这里发生的事情有见解吗?

提前致谢!

【问题讨论】:

    标签: python scrapy web-crawler


    【解决方案1】:

    Spider 必须返回 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()}
    

    【讨论】:

      猜你喜欢
      • 2018-05-18
      • 1970-01-01
      • 2022-01-20
      • 2016-12-25
      • 2013-04-01
      • 2016-01-21
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多