我在网上抓取一些(巨大的)数据。
因为我应该得到的数据是巨大的。通过使用多进程,我有超过500个同时urllib.request.urlopen(url)
个请求。
这里的问题是
urllib.error.URLError:urlopen错误名称暂时失败 分辨率
抛出此错误。经过一些研究后,我认为这是因为太多的请求无法关闭连接的问题。
但找不到如何解决。
是唯一能够在某个安全范围内限制同时连接的解决方案吗?
通过配置urllib设置或类似的任何其他解决方案?
DEV ENV
答案 0 :(得分:0)
尝试使用请求库中的Session Objects。如文档中所述,
Session对象允许您跨请求保留某些参数。它还会在从Session实例发出的所有请求中保留cookie,并使用urllib3的连接池。因此,如果您向同一主机发出多个请求,则将重用底层TCP连接,这可能会导致性能显着提高(请参阅HTTP持久连接)。
也许这个有效网页抓取的其他thread可以帮助你。