Получите структурированный вывод с помощью Scrapy - PullRequest
0 голосов
/ 04 февраля 2020

Я только начинаю использовать скрап, и это один из моих первых нескольких проектов. Я пытаюсь очистить некоторые метаданные компании от https://www.baincapitalprivateequity.com/portfolio/. Я выяснил свои селекторы, но я не могу структурировать вывод. В настоящее время я получаю все в одной ячейке, но я хочу, чтобы результат был по одной строке для каждой компании . Если кто-то может помочь с тем, где я иду не так, это будет действительно здорово.

import scrapy
from ..items import BainpeItem


class BainPeSpider(scrapy.Spider):
    name = 'Bain-PE'
    allowed_domains = ['baincapitalprivateequity.com']
    start_urls = ['https://www.baincapitalprivateequity.com/portfolio/']

    def parse(self, response):

        items = BainpeItem()

        all_cos = response.css('div.grid')

        for i in all_cos:
            company = i.css('ul li::text').extract()
            about = i.css('div.companyDetail p').extract()

            items['company'] = company
            items['about'] = about

            yield items

1 Ответ

0 голосов
/ 04 февраля 2020

Вы можете просто сдать каждый предмет в течение l oop:

for i in all_cos:
        item = BainpeItem()
        company = i.css('ul li::text').extract()
        about = i.css('div.companyDetail p').extract()

        item['company'] = company
        item['about'] = about

        yield item

Таким образом, каждый предмет будет доставлен в конвейер отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...