Python WebCrawling urllib.error.URLError:<urlopen error =“”temporary =“”failure =“”in =“”name =“”resolution =“”>

时间:2018-04-08 14:21:18

标签: python web-crawler urllib

我在网上抓取一些(巨大的)数据。 因为我应该得到的数据是巨大的。通过使用多进程,我有超过500个同时urllib.request.urlopen(url)个请求。 这里的问题是

  

urllib.error.URLError:urlopen错误名称暂时失败   分辨率

抛出此错误。经过一些研究后,我认为这是因为太多的请求无法关闭连接的问题。

但找不到如何解决。

是唯一能够在某个安全范围内限制同时连接的解决方案吗?

通过配置urllib设置或类似的任何其他解决方案?

DEV ENV

  • Ubuntu 16.04
  • Python 3.6

1 个答案:

答案 0 :(得分:0)

尝试使用请求库中的Session Objects如文档中所述,

  

Session对象允许您跨请求保留某些参数。它还会在从Session实例发出的所有请求中保留cookie,并使用urllib3的连接池。因此,如果您向同一主机发出多个请求,则将重用底层TCP连接,这可能会导致性能显着提高(请参阅HTTP持久连接)。

也许这个有效网页抓取的其他thread可以帮助你。