python – urllib2中的未知url类型错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – urllib2中的未知url类型错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2492字,纯文字阅读大概需要4分钟。
内容图文
我在SO上搜索了很多类似的问题,但没有找到与我的案例完全匹配的问题.
我正在尝试使用python 2.7下载视频
这是我下载视频的代码
import urllib2
from bs4 import BeautifulSoup as bs
with open('video.txt','r') as f:
last_downloaded_video = f.read()
webpage = urllib2.urlopen('http://*.net/watch/**-'+last_downloaded_video)
soup = bs(webpage)
a = []
for link in soup.find_all('a'):
if link.has_attr('data-video-id'):
a.append(link)
#try just with first data-video-id
id = a[0]['data-video-id']
webpage2 = urllib2.urlopen('http://*/video/play/'+id)
soup = bs(webpage2)
string = str(soup.find_all('script')[2])
print string
url = string.split(': ')[1].split(',')[0]
url = url.replace('"','')
print url
print type(url)
video = urllib2.urlopen(url).read()
filename = "video.mp4"
with open(filename,'wb') as f:
f.write(video)
此代码提供了未知的url类型错误.追溯是
Traceback (most recent call last):
File "naruto.py", line 26, in <module>
video = urllib2.urlopen(url).read()
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 404, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 427, in _open
'unknown_open', req)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1247, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: 'http>
但是,当我将相同的url存储在变量中并尝试从终端下载时,不会显示错误.
我对这个问题很困惑.
我有一个类似的问题in python mailing list
解决方法:
没有看到你正在抓取的页面中的HTML很难说,但是,URL开头的一个迷路的(单引号)字符可能是原因 – 这会导致相同的异常:
>>> import urllib2
>>> urllib2.urlopen("'http://blah.com")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "urllib2.py", line 404, in open
response = self._open(req, data)
File "urllib2.py", line 427, in _open
'unknown_open', req)
File "urllib2.py", line 382, in _call_chain
result = func(*args)
File "urllib2.py", line 1249, in unknown_open
raise URLError('unknown url type: %s' % type)
urllib2.URLError: <urlopen error unknown url type: 'http>
因此,请尝试清理您的网址并删除任何杂散的引号.
OP反馈后更新:
print语句的结果表明URL在URL字符串的开头和结尾有一个单引号字符.将URL传递给urlopen()时,不应该有任何类型的引号.您可以使用以下命令从URL字符串中删除前导引号和尾随引号(单引号和双引号):
url = url.strip('\'"')
内容总结
以上是互联网集市为您收集整理的python – urllib2中的未知url类型错误全部内容,希望文章能够帮你解决python – urllib2中的未知url类型错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。