Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python mechanize connection failed issue

I am running a crawler, it's working fine in MAC and Ubuntu system. When I am running it in windows it results following stack trace:

  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 203, in open
    return self._mech_open(url, data, timeout=timeout)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 230, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "build\bdist.win32\egg\mechanize\_opener.py", line 193, in open
    response = urlopen(self, req, data)
  File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 344, in _open
    '_open', req)
  File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 332, in _call_chain
    result = func(*args)
  File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 1170, in https_open
    return self.do_open(conn_factory, req)
  File "build\bdist.win32\egg\mechanize\_urllib2_fork.py", line 1118, in do_open
    raise URLError(err)
URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond>
like image 410
mushfiq Avatar asked Dec 31 '25 23:12

mushfiq


2 Answers

I heavily doubt that the problem is connected to your system. To fix the problem, I would recommend:

  1. Check your mechanize version. Older versions might handle requests differently.
  2. Investigate set_handle_robots and addheaders. Issue might be connected to too many requests per IP. (I suspect that this is the real problem.)
  3. Check error handling. Like described in a comment above you should add proper error handling anyway.

If none of the described solutions above works, please provide the code which is causing the error.

like image 83
Philipp Braun Avatar answered Jan 03 '26 12:01

Philipp Braun


From the error I deduce that the server you're trying to connect to is not allowing your connection.

Try to use telnet to double check you can connect to the URL/IP:PORT you are requesting:

telnet <ip> <port>

PS: Just in case, don't use ping you check the connectivity as you're not testing the port.

like image 35
Héctor Valverde Pareja Avatar answered Jan 03 '26 13:01

Héctor Valverde Pareja



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!