【发布时间】:2016-12-07 13:52:37
【问题描述】:
我使用 requests 模块编写了一个网络爬虫。我打开一个会话并使用此会话发送后续请求。它有两个阶段。
1) 逐页抓取并将 id 收集到一个数组中。 2) 使用对同一主机上的 ajax 服务器的请求获取数组中每个 id 的详细信息。
刮板在我的 Linux 机器上运行良好。但是,当我在 Windows 10 上运行机器人时,阶段 1 完成得很好,但是在阶段 2 中的几个请求之后,python 抛出了这个异常
文件“c:\python27\lib\site-packages\requests\adapters.py”,第 453 行,在发送中 引发 ConnectionError(错误,请求=请求) ConnectionError: ('Connection aborted.', error(10054, 'Varolan bir ba\xf0lant\xfd uzaktaki bir ana bilgisayar taraf\xfdndan zorla kapat\xfdld'))
导致这种情况的两个操作系统有什么不同?我该如何克服这个问题?
使用重试模块修改我的请求代码(如下所示)没有任何积极影响。现在脚本不会抛出异常,而只是挂起什么都不做。
@retry(wait_exponential_multiplier=1000, wait_exponential_max=10000, stop_max_attempt_number=7)
def doReq(self, url):
time.sleep(0.5)
response = self.session.get(url, headers=self.headers)
return response
【问题讨论】:
标签: python windows session web-scraping python-requests