优化使用wget进行网络爬虫

3

我正在使用wget下载一个巨大的网页列表(大约70000个)。我被迫在连续的wget之间放置大约2秒钟的休眠时间。这需要很长时间,大约70天左右。我想要做的是使用代理,以便可以显着加快这个过程。我正在使用一个简单的bash脚本进行此过程。欢迎任何建议和评论。

1个回答

3

第一条建议是不要使用Bash或wget。我建议使用Python和Beautiful Soup。Wget并不真正为屏幕抓取而设计。

第二条建议是通过在每台机器上运行列表的一部分来将负载分散到多个机器上。

由于带宽似乎是您的问题,您可以轻松地生成一些云映像,并将脚本放在这些映像上。


我下载了Beautiful Soup。但我不认为我需要它。我的瓶颈是将网页下载到我的机器上。一旦我有了这些页面,我可以使用grep命令提取我想要的信息。我对python不是很熟悉。它是否有优化实际数据收集(获取网页到您的PC)的库?带宽不是我的问题。至少目前没有引起问题的问题。我正在爬取的网站似乎受到DoS的保护(我假设,因此我被迫等待)。我可以考虑在多台机器上或云上部署。 - liv2hak
另一个我推荐使用Python的原因是,这样你就不必一直执行进程和重新创建连接。Python脚本可以重复使用连接,因此更加服务器友好。...希望你没有做什么坏事 :) - Adam Gent
谢谢。我会深入学习Python。不,我没有做你想的那件事。 :) - liv2hak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接