Scrapy - вывод не появляется - PullRequest
0 голосов
/ 20 марта 2019

Доброе утро всем,

У меня проблема при использовании Scrapy. Я хотел бы получить данные, содержащиеся в столбце «коммуна» таблицы из этого URL: 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. У кого-то есть понимание того, что здесь происходит?

Заранее спасибо!

1 Ответ

3 голосов
/ 20 марта 2019

Паук должен вернуть 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()}
...