首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Scrapy -如何同时从2个不同的网站抓取?

Python Scrapy -如何同时从2个不同的网站抓取?
EN

Stack Overflow用户
提问于 2020-02-10 22:38:57
回答 2查看 229关注 0票数 1

我需要从Excel中给出的域列表中抓取数据;问题是我需要从原始网站(让我们举个例子:https://www.lepetitballon.com)和从similartech (https://www.similartech.com/websites/lepetitballon.com)抓取数据。

我希望它们同时被抓取,这样我就可以接收它们,并在最后格式化它们一次,之后我将直接转到下一个域。

理论上,我应该在scrapy中以异步方式使用2个爬行器?

EN

回答 2

Stack Overflow用户

发布于 2020-02-11 00:53:47

理想情况下,您会希望将抓取不同结构站点的爬行器分开,这样从长远来看,您的代码将更容易维护。

从理论上讲,如果由于某种原因,您必须在同一个爬行器中解析它们,那么您可以只收集您想要抓取的URL,并根据基本路径调用不同的解析器回调方法。话虽如此,我个人想不出你为什么要这么做的原因。即使您有相同的结构,也可以重用您的scrapy.Item类。

票数 1
EN

Stack Overflow用户

发布于 2020-02-11 01:42:38

Twisted networking库由scrapy框架用于其内部联网任务,scrapy提供了用于处理设置中的并发请求。

在这里解释:https://docs.scrapy.org/en/latest/topics/settings.html#concurrent-requests

或者你可以使用多个相互独立的爬虫,这在scrapy文档中已经解释过了,这可能就是你正在寻找的。

默认情况下,当您运行Scrapy crawl时,scrapy会为每个进程运行一个爬行器。但是,Scrapy支持使用内部API为每个进程运行多个爬行器。

https://docs.scrapy.org/en/latest/topics/practices.html#running-multiple-spiders-in-the-same-process

根据效率,您可以选择选项A或B,这实际上取决于您的资源和需求,而选项A可能适用于较低的资源,但速度较好,或者选项B可能是较好的速度,但比选项A消耗更高的资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60152670

复制
相关文章

相似问题

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