正确的方法来修复没有http://的网址

时间:2015-05-20 15:56:40

标签: python url urllib2 urllib

我正在尝试open使用Urllib2中的此格式的网址列表:

google.com
facebook.com
youtube.com
yahoo.com
baidu.com

使用此方法:

urllib2.urlopen(url)

收到此错误:

File "fetcher.py", line 98, in fetch_urls_and_save
  response = urllib2.urlopen(url)
File "urllib2.py", line 154, in urlopen
  return opener.open(url, data, timeout)
File "urllib2.py", line 423, in open
  protocol = req.get_type()
File "urllib2.py", line 285, in get_type
  raise ValueError, "unknown url type: %s" % self.__original

所以,我的问题是:

是否有正确的方法来“修复”这些网址,或者我应该只在每个字符串前面附加http://?我认为这不是最佳解决方案,因为以https://开头的网址呢?

1 个答案:

答案 0 :(得分:4)

我建议只是将http://附加到字符串,因为许多使用https://方案的网站会通过重定向请求自动切换到该字符串。

您可以使用urlopen功能检查getcode()返回的状态。

a=urllib2.urlopen("http://google.com")
print a.getcode() # prints 200