Why isn't this simple Python code working?
import urllib
file = urllib.urlopen('http://www.google.com')
print file.read()
This is the error that I get:
Traceback (most recent call last):
File "C:\workspace\GarchUpdate\src\Practice.py", line 26, in <module>
file = urllib.urlopen('http://www.google.com')
File "C:\Python26\lib\urllib.py", line 87, in urlopen
return opener.open(url)
File "C:\Python26\lib\urllib.py", line 206, in open
return getattr(self, name)(url)
File "C:\Python26\lib\urllib.py", line 345, in open_http
h.endheaders()
File "C:\Python26\lib\httplib.py", line 892, in endheaders
self._send_output()
File "C:\Python26\lib\httplib.py", line 764, in _send_output
self.send(msg)
File "C:\Python26\lib\httplib.py", line 723, in send
self.connect()
File "C:\Python26\lib\httplib.py", line 704, in connect
self.timeout)
File "C:\Python26\lib\socket.py", line 514, in create_connection
raise error, msg
IOError: [Errno socket 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
I've tried it with several different pages but I can never get the urlopen
method to execute correctly.
Your code is not the problem here.
Do you have any Proxy settings in your IE?
This says the python documentation for urllib.urlopen:
In a Windows environment, if no proxy environment variables are set,
proxy settings are obtained from the registry's Internet Settings
section.
Try using urllib2 if it is feasible to change some lines of code. Set the timeout argument in seconds
For example:
urllib2.urlopen(http://www.abc.com/api, timeout=20)
Here the connection persists for a longer duration. So if for example you are reading an XML file that is too large it avoids incomplete reading.
The above code will never work if the Net connection is slow or it breaks suddenly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With