Python RoboBrowser SSL错误:握手不良:SysCallError(104,' ECONNRESET')

时间:2017-03-11 07:53:08

标签: python ssl robobrowser econnreset

我正在尝试在网页上填写表单并使用RoboBrowser库获取一些结果。

我有一个带有〜200k引用的文件可能无法给出足够的anwser(存储在data [1]中的街道名称可能与表单中所需的街道名称不同,导致另一个页面打开)。 我的代码运行并打印出我想要获取或打印的信息" NS"如果反应不符合预期(主要是由于街道名称错误)。

然而,经过一段随机时间(大约在1300个周期之后,然后是大约100-300或更少),我得到:

constructor
logWidth
width
height
Polygon

我尝试在这里和那里添加time.sleep(0.01),认为我的页面超载,但它没有帮助。 有没有人有想法?

我的代码:

    Traceback (most recent call last):
  File "web_scraper.py", line 49, in <module>
    result = rechCadastre(data_point,result)
  File "web_scraper.py", line 16, in rechCadastre
    browser.submit_form(form)
  File "/usr/local/lib/python2.7/dist-packages/robobrowser/browser.py", line 343, in submit_form
    response = self.session.request(method, url, **send_args)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 488, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 609, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/requests/adapters.py", line 497, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: SysCallError(104, 'ECONNRESET')",)

我正在使用Ubuntu 16.04.2 LTS和Python2.7

谢谢!

1 个答案:

答案 0 :(得分:1)

我设法通过将每次调用的等待时间time.sleep更改为1来避免错误。 该程序有时会再次出现错误,但实际上很少(大约在20000-30000次请求中)。

感谢您的支持!