在多个shell下运行相同的Spider,会更快吗?

时间:2018-08-29 03:46:43

标签: python web-scraping scrapy scrapy-spider

例如,我有一个蜘蛛,可从网站上抓取一些电话信息。

通常,我只需要打开一个cmd并运行脚本即可。

那么此脚本将占用所有计算机资源来运行脚本(CPU,Internet带宽)吗?我的意思是,一位同事问我:“如果我打开几个cmd并运行相同的脚本,会更快吗?”。


因此在1台PC上1 cmd + 1 spiderAseveral *(1 cmd + 1 spiderA)相比,后者会更快吗?还是不需要后者操作?

另一个类推(如果上面的描述仍然不清楚):

假设一台PC拥有100%的资源。

如果1 cmd + 1 spiderA仅占20%,那么2* (1 cmd + 1 spiderA),后一种组合会占40%还是分成10%?

问这个问题的目的是要确保蜘蛛可以使用1台PC的所有资源。

1 个答案:

答案 0 :(得分:0)

在大多数情况下,爬网的瓶颈是带宽/延迟,并且通过在相同的连接上运行同一蜘蛛的多个实例,您将一无所获,因为scrapy已经并发,并且将占用配置为(CONCURRENT_REQUESTS等)。例如,如果您要从缓存中爬取大量内容,并且非io绑定代码(html解析等)变得更加严格,那么多线程/多处理可能会变得有用,但是通常我会说这是过早的优化。