首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将刮过的项目导出为Scrapy中的字典列表

如何将刮过的项目导出为Scrapy中的字典列表
EN

Stack Overflow用户
提问于 2021-12-09 03:35:56
回答 1查看 112关注 0票数 0

我做了一个抓取代码,有4个爬虫从4个不同的电子商务网站抓取。对于每个爬虫,我想从每个网站输出价格最低的5产品,并将它们导出到一个CSV文件中。

现在,我的主要代码如下所示:

代码语言:javascript
复制
process = CrawlerProcess()
process.crawl(Crawler1)
process.crawl(Crawler2)
process.crawl(Crawler3)
process.crawl(Crawler4)
process.start()

我希望每个爬虫返回一个字典列表,这样我就可以使用for循环迭代它,并比较价格。

我需要使用刮除管道来做这件事吗?我如何才能使Scrapy返回一个被刮掉的项的列表(它在字典中),而不只是将它们导出为一个文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-09 09:50:08

下面是另一个帖子中的一些蜘蛛的例子,我将蜘蛛名称传递给函数,但是您可以根据需要调整它:

代码语言:javascript
复制
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from scrapy.signalmanager import dispatcher
from scrapy import signals


def spider_output(spider):
    output = []

    def get_output(item):
        output.append(item)

    dispatcher.connect(get_output, signal=signals.item_scraped)

    settings = get_project_settings()
    settings['USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
    process = CrawlerProcess(settings)
    process.crawl(spider)
    process.start()
    return output


if __name__ == "__main__":
    spider = 'vdsc'
    print(spider_output(spider))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70284426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档