Python urllib urlopen not working
I am just trying to fetch data from a live web using the urllib module, so I wrote a simple example
Here is my code:
import urllib
sock = urllib.request.urlopen("http://diveintopython.org/")
htmlSource = sock.read()
sock.close()
print (htmlSource)
But I got an error like:
Traceback (most recent call last):
File "D:\test.py", line 3, in <module>
sock = urllib.request.urlopen("http://diveintopython.org/")
AttributeError: 'module' object has no attribute 'request'
source to share
You are reading the wrong documentation or the wrong version of the Python interpreter. Have you tried using the Python 3 library in Python 2.
Using:
import urllib2
sock = urllib2.urlopen("http://diveintopython.org/")
htmlSource = sock.read()
sock.close()
print htmlSource
The Python 2 library has urllib2
been replaced in Python 3. urllib.request
source to share
This is what I use to get data from urls, it's good because you can save the file at the same time if you need it:
import urllib
result = urllib.urlretrieve("http://diveintopython.org/")
print open(result[0]).read()
output:
'<!DOCTYPE html><body style="padding:0; margin:0;"><iframe src="http://mcc.godaddy.com/park/pKMcpaMuM2WwoTq1LzRhLzI0" style="visibility: visible;height: 2000px;" allowtransparency="true" marginheight="0" marginwidth="0" frameborder="0" scrolling="no" width="100%"></iframe></body></html>'
Edit: urlretrieve works in python 2 and 3
source to share
In Python3, you can use urllib or urllib3
URLLIB:
import urllib.request
with urllib.request.urlopen('http://docs.python.org') as response:
htmlSource = response.read()
urllib3:
import urllib3 http = urllib3.PoolManager() r = http.request('GET', 'http://docs.python.org') htmlSource = r.data
source to share
Use this import cv2 import numpy as np import urllib // import urllib using pip import requests // import requests using enter code here
pip enter code here
url = "write your url" while True: imgresp = urllib.request.urlopen (url) imgnp = np.array (bytearray (imgresp.read ()), dtype = np.uint8) img = cv2.imdecode (imgnp, -1) cv2.imshow ("test", img) cv2.waitKey ('q')
source to share