加快我可以通过线程抓取的页面数量

时间:2014-08-06 05:52:03

标签: python multithreading performance web-scraping beautifulsoup

我目前正在使用beautifulsoup来搜索sourceforge.net以获取各种项目信息。我正在使用此thread中的解决方案。它运作良好,但我希望更快。现在,我正在创建一个包含15个网址的列表,并将其输入到 run_parallel_in_threads。所有的URL都是sourceforge.net链接。我目前每秒大约有2.5页。似乎增加或减少列表中的URL数量并不会对速度产生太大影响。是否有任何策略来增加我可以抓取的页数?任何其他更适合此类项目的解决方案?

1 个答案:

答案 0 :(得分:1)

您可以让并行运行的线程只检索Web内容。检索到html页面后,将页面传递到一个队列,该队列中有多个工作程序,每个工作程序解析一个html页面。现在,您基本上已将您的工作流程流水线化。而不是让每个线程执行多个步骤(检索页面,刮擦,存储)。并行的每个线程都可以简单地检索页面,然后让它将任务传递到队列中,该队列以循环方式处理这些任务。

如果您有任何疑问,请与我们联系!