Scrapy + python: CSV-файл не экспортирован в правильном порядке - PullRequest
0 голосов
/ 19 марта 2020

Я создаю CSV-файл с моим пауком, но он дает мне странный порядок данных:

Мой код:

class GoodmanSpider(scrapy.Spider):
name = "goodmans"
start_urls = ['http://www.goodmans.net/d/1706/brands.htm']

def parse(self, response):
    items = TutorialItem()
    all_data = response.css('.SubDepartments')
    for data in all_data:
        category = data.css('.SubDepartments a::text').extract()
        category_url = data.css('.SubDepartments a::attr(href)').extract()
        items['category'] = category
        items['category_url'] = category_url
        yield items

Мой файл items.py

My items.py file

Вывод, который я получаю: The output I get

Требуемый выход, более или менее: The output I want, more or less

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Вы сложили все свои вещи в один. Каждый элемент должен содержать одно значение для каждой клавиши, пока у вас есть список.

Попробуйте что-то вроде:

for cat, url in zip(category, category_url):
    item = dict(category=cat, category_url=url)
    yield item
0 голосов
/ 19 марта 2020

Это исправление кода, основанное на ответе Майкла. Отлично работает

import scrapy
from ..items import TutorialItem
import pandas as pd

class GoodmanSpider(scrapy.Spider):
    name = "goodmans"
    start_urls = ['http://www.goodmans.net/d/1706/brands.htm']

    def parse(self, response):
        items = TutorialItem()
        all_data = response.css('.SubDepartments')
        for data in all_data:
            category = data.css('.SubDepartments a::text').extract()
            category_url = data.css('.SubDepartments a::attr(href)').extract()
            items['category'] = category
            items['category_url'] = category_url
            for cat, url in zip(category, category_url):
                item = dict(category=cat, category_url=url)
                yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...