首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ValueError: urllib2中的url类型未知,但如果在浏览器中打开该url就可以了

ValueError: urllib2中的url类型未知,但如果在浏览器中打开该url就可以了
EN

Stack Overflow用户
提问于 2011-04-29 02:54:40
回答 4查看 45.6K关注 0票数 22

基本上,我正在尝试使用python中的urllib2下载一个网址。

代码如下:

import urllib2
req = urllib2.Request('www.tattoo-cover.co.uk')
req.add_header('User-agent','Mozilla/5.0')
result = urllib2.urlopen(req)

它会输出ValueError,程序会对示例中的URL进行压缩。当我在浏览器中访问url时,它工作得很好。

有什么办法解决这个问题吗?

更新:

感谢Ben James和sth problem is detected => add 'http://‘

现在问题来了:有没有可能用一些内置函数自动处理这种情况,或者我必须用后续的字符串连接来处理错误?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-29 02:57:51

当您在浏览器中输入不带协议的URL时,它默认为HTTP。urllib2不会为您做这样的假设;您需要在前面加上http://

票数 38
EN

Stack Overflow用户

发布于 2011-04-29 02:57:15

您必须使用包含协议的完整URL,而不仅仅是指定主机名。

正确的URL应该是http://www.tattoo-cover.co.uk/

票数 6
EN

Stack Overflow用户

发布于 2018-11-07 01:39:00

您可以使用urllib (Python3)中的方法urlparse来检查是否存在寻址方案(http、https、ftp),并在不存在的情况下连接该方案:

In [1]: from urllib.parse import urlparse
    ..: 
    ..: url = 'www.myurl.com'
    ..: if not urlparse(url).scheme:
    ..:     url = 'http://' + url
    ..: 
    ..: url
Out[1]: 'http://www.myurl.com'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5823572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档