使用 Scrapy 获取结构化输出



我刚刚开始使用scrapy,这是我最初的几个项目之一。我正在尝试从 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

您可以在 for 循环中生成每个项目:

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

这样,每个项目将分别到达管道中。

最新更新