我正在尝试使用Python下载网站的HTML源代码,但我收到此错误。
追踪(最近的呼叫最后):
文件 “C:\用户\ Sergio.Tapia \文件\的NetBeansProjects \ DICParser \ SRC \ WebDownload.py”, 第3行,在 file = urllib.urlopen(“http://www.python.org”) AttributeError:'module'对象没有 属性'urlopen'
我在这里关注指南:http://www.boddie.org.uk/python/HTML.html
import urllib
file = urllib.urlopen("http://www.python.org")
s = file.read()
f.close()
#I'm guessing this would output the html source code?
print(s)
我正在使用Python 3,感谢您的帮助!
答案 0 :(得分:187)
这适用于Python 2.x。
对于Python 3,请查看docs:
import urllib.request
with urllib.request.urlopen("http://www.python.org") as url:
s = url.read()
# I'm guessing this would output the html source code ?
print(s)
答案 1 :(得分:18)
Python 2 + 3兼容解决方案是:
import sys
if sys.version_info[0] == 3:
from urllib.request import urlopen
else:
# Not Python 3 - today, it is most likely to be Python 2
# But note that this might need an update when Python 4
# might be around one day
from urllib import urlopen
# Your code where you can use urlopen
with urlopen("http://www.python.org") as url:
s = url.read()
print(s)
答案 2 :(得分:13)
import urllib.request as ur
s = ur.urlopen("http://www.google.com")
sl = s.read()
print(sl)
在Python v3中," urllib.request"是一个单独的模块,因此" urllib"不能在这里使用。
答案 3 :(得分:4)
要获取' dataX = urllib.urlopen (网址).read()'在python 3 中工作(这对于python 2 来说是正确的)你必须改变2件小事。
1: urllib语句本身(在中间添加.request):
dataX = urllib.request.urlopen(url).read()
2:之前的导入语句(从' import urlib'更改为:
import urllib.request
它应该在python3中工作:)
答案 4 :(得分:3)
import urllib.request as ur
filehandler = ur.urlopen ('http://www.google.com')
for line in filehandler:
print(line.strip())
答案 5 :(得分:2)
更改两行:
import urllib.request #line1
#Replace
urllib.urlopen("http://www.python.org")
#To
urllib.request.urlopen("http://www.python.org") #line2
如果出现错误403:禁止错误,请尝试以下操作:
siteurl = "http://www.python.org"
req = urllib.request.Request(siteurl, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36'})
pageHTML = urllib.request.urlopen(req).read()
希望您的问题得到解决。
答案 6 :(得分:1)
对于python 3,请尝试如下操作:
import urllib.request
urllib.request.urlretrieve('http://crcv.ucf.edu/THUMOS14/UCF101/UCF101/v_YoYo_g19_c02.avi', "video_name.avi")
它将视频下载到当前工作目录
答案 7 :(得分:1)
python3的解决方案:
from urllib.request import urlopen
url = 'http://www.python.org'
file = urlopen(url)
html = file.read()
print(html)
答案 8 :(得分:0)
您在python2.x中使用的代码,您可以像这样使用:
from urllib.request import urlopen
urlopen(url)
顺便说一句,建议另一个称为请求的模型更友好地使用,您可以使用pip安装它,并像这样使用:
import requests
requests.get(url)
requests.post(url)
我认为它很容易使用,我也是初学者。...哈哈
答案 9 :(得分:0)
一种可能的方法:
import urllib
...
try:
# Python 2
from urllib2 import urlopen
except ImportError:
# Python 3
from urllib.request import urlopen
答案 10 :(得分:0)
使用六个模块使您的代码在 python2 和 python3
之间兼容urllib.request.urlopen("<your-url>")```
答案 11 :(得分:-1)
import urllib
import urllib.request
from bs4 import BeautifulSoup
with urllib.request.urlopen("http://www.newegg.com/") as url:
s = url.read()
print(s)
soup = BeautifulSoup(s, "html.parser")
all_tag_a = soup.find_all("a", limit=10)
for links in all_tag_a:
#print(links.get('href'))
print(links)
答案 12 :(得分:-3)
imgResp = urllib3.request.RequestMethods.urlopen(url)
在使用 urlopen 之前添加此 RequestMethods