请求库:如何加快速度?

时间:2013-12-30 16:32:06

标签: python multithreading urllib2 python-requests

我正在尝试向不同的网页发送多个请求。目前我在多线程中使用“请求”库,因为我发现它比urllib2表现最好。是否可以只加载网页的一部分?除了KeepAlive和多线程之外,您还有其他任何想法来加快我的请求吗?

感谢。

1 个答案:

答案 0 :(得分:0)

正如你在评论中澄清的那样:

  

您好,我正试图从意大利证券交易所网站上提取几个股票报价和财务比率。我加载的每个页面都与特定公司相关。

这意味着没有太多简单的优化可做。如果网页本身非常大并且您想要的数据在页面中是早期的,那么您可以避免在streaming the download之前下载部分数据:也就是说,在CacheControl上设置stream=True请求,然后使用Response.iter_content()一次读取数据块。

如果您很幸运,您可以利用缓存来缩短响应时间或大小。尝试将{{3}}之类的内容插入到Session对象中,看看这是否有所改善。

否则,你已经获得了几乎与单独使用软件一样大的改进。如果意大利证券交易所支持SPDY(他们可能不支持),使用SPDY库可以改善事情,但这会排除请求(也可能是多线程,原因与此答案完全相同)。另一种开箱即用的选择是在靠近提供数据的Web服务器的机器上运行。