Scrapy - Как определить структуру экспорта в csv (столбцы и т. Д.) - PullRequest
2 голосов
/ 21 мая 2019

Я совсем новичок в области scrapy, и я должен выяснить, как установить структуру экспорта в csv. У меня в следующем примере 2 вида данных очищаются: идентификаторы и ссылки

Вот простой код, который я использую:

class MybotSpider(scrapy.Spider):
    name = 'mybot'
    start_urls = ['url']

    def parse(self, response):
        all_dataids = response.css('li::attr(data-id)').extract()
        all_links = response.xpath('//a[contains(@class, "js_clickable")]/@href').extract()

        adlist = SpiderItem()
        adlist['dataid'] = all_dataids
        adlist['link'] = all_links
        yield adlist

Но мой экспорт такой:

csv_export_i_get

Вместо этого я хотел бы экспортировать с для каждого идентификатора, соответствующего href и разделенного на строки:

csv_export_i_would_like

1 Ответ

1 голос
/ 21 мая 2019

Сделайте так, чтобы приносить предметы:

def parse(self, response):
    all_dataids = response.css('li::attr(data-id)').extract()
    all_links = response.xpath('//a[contains(@class, "js_clickable")]/@href').extract()

    for link, dataid in zip(all_links, all_dataids):
        adlist = SpiderItem()
        adlist['dataid'] = dataid
        adlist['link'] = link
        yield adlist

Здесь вы zip свои массивы до ((link, dataid), (link, dataid), (link, dataid), ...), а затем уступаете их один за другим. Так что это должно дать вам желаемый результат.

...