我正在尝试在open中使用Urllib2的这种格式的URL列表:

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


所以,我的问题是:

是否有适当的方法来“修复”这些URL,还是应该在每个字符串前简单地添加http://?我认为这不是最佳解决方案,因为以https://开头的网址又如何呢?

最佳答案

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

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

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

关于python - 正确的方法来修复没有http://的网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30354717/

10-12 22:24