gpt4 book ai didi

python - 快速网络爬虫

转载 作者:太空狗 更新时间:2023-10-29 20:46:23 26 4
gpt4 key购买 nike

我想进行大规模的数据挖掘。为此,我需要一个快速爬虫。我所需要的只是下载网页、提取链接并递归地跟踪它们,而不需要访问同一个 url 两次。基本上,我想避免循环。

我已经用python写了一个爬虫,但是太慢了。我无法用它使 100Mbit 线路饱和。最高速度约为 40 个网址/秒。由于某种原因,很难获得更好的结果。这似乎是 python 的多线程/套接字的问题。我也遇到了 python 的 gargabe 收集器的问题,但这是可以解决的。顺便说一句,CPU 不是瓶颈。

那么,我应该用什么来编写尽可能快的爬虫,避免爬行时循环的最佳解决方案是什么?

编辑:解决方案是结合 multiprocessingthreading 模块。产生多个进程,每个进程有多个线程以获得最佳效果。在单个进程中产生多个线程是无效的,并且只有一个线程的多个进程会消耗太多内存。

最佳答案

为什么不使用已经过爬行测试的东西,比如 Scrapy ?我设法在 RAM 内存有限(约 400Mb)的低端 VPS 上达到每秒近 100 页,而网络速度约为 6-7 Mb/s(即低于 100Mbps)。

您可以做的另一项改进是使用 urllib3(尤其是从单个域抓取许多页面时)。这是我前段时间做的一个简短比较:

urllib benchmark

更新:

立即抓取 uses the Requests library ,这又是uses urllib3 .这使得 Scrapy 成为数据抓取的绝对首选工具。最近的版本还支持部署项目,因此从 VPS 抓取比以往任何时候都更容易。

关于python - 快速网络爬虫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com