我只是想通过使用urllib模块从实时网络中获取数据,所以我写了一个简单的例子
这是我的代码:
import urllib
sock = urllib.request.urlopen("http://diveintopython.org/")
htmlSource = sock.read()
sock.close()
print (htmlSource)
但我得到的错误如下:
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'
答案 0 :(得分:18)
您正在阅读错误的文档或错误的Python解释器版本。您试图在Python 2中使用Python 3库。
使用:
import urllib2
sock = urllib2.urlopen("http://diveintopython.org/")
htmlSource = sock.read()
sock.close()
print htmlSource
Python 3 urllib2
library已被Python 3中的urllib.request
取代。
答案 1 :(得分:6)
import requests
import urllib
link = "http://www.somesite.com/details.pl?urn=2344"
f = urllib.request.urlopen(link)
myfile = f.read()
writeFileObj = open('output.xml', 'wb')
writeFileObj.write(myfile)
writeFileObj.close()
答案 2 :(得分:3)
这是我用来从网址获取数据的方法,很不错,因为你可以在需要的时候同时保存文件:
import urllib
result = urllib.urlretrieve("http://diveintopython.org/")
print open(result[0]).read()
输出:
'<!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>'
编辑:urlretrieve在python 2和3中工作
答案 3 :(得分:2)
在 Python3 中,您可以使用 urllib 或 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
答案 4 :(得分:1)
对于python 3,正确的方法应该是:
geom_text(aes(
x=año_new, y=100,
label = paste0(round(Promedio), "\n(", round(Desviacion), ")")
),
hjust=0,
position=position_dodge(0.9)
)
在这里您可以找到与urllib.request相关的文档
答案 5 :(得分:0)
请确保您从requests
导入了urllib
,然后尝试使用这种格式,它对我有用:
from urllib import request
urllib.request.urlopen( )
答案 6 :(得分:0)
我刚刚问了一个已经超过5岁的问题。
请注意,给出的URL也很旧,因此我替换了 python欢迎页面。
我们可以在 python 3 中使用请求模块。
我使用 python 3 ,解决方案如下:
import requests
r = requests.get('https://www.python.org/')
t = r.text
print(t)
这有效且干净。
答案 7 :(得分:-1)
使用此
导入cv2
导入numpy为np
import urllib //使用pip导入urllib
导入请求//使用pip enter code here
导入请求
url =“写您的网址”
而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')