【问题标题】:How to fix "unknown url-type error" in urllib2如何修复 urllib2 中的“未知 url 类型错误”
【发布时间】:2019-07-02 22:55:39
【问题描述】:

我正在尝试从 Udacity 的 python 类开始构建一个搜索引擎。 有一次,我运行了我的程序,并在一堆其他东西中遇到了这个错误。有人可以帮助我开始理解所有这些错误吗?

Traceback(最近一次调用最后一次):

  File "E:\Python codes\MySearchEngine.py", line 106, in <module>
    crawl_web(startPage)
  File "E:\Python codes\MySearchEngine.py", line 66, in crawl_web
    linksToFollow = followLinks(toCrawl)
  File "E:\Python codes\MySearchEngine.py", line 53, in followLinks
    linkPageContent = get_page(link)
  File "E:\Python codes\MySearchEngine.py", line 4, in get_page
    page = urllib2.urlopen(page).read()
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 392, in open
    protocol = req.get_type()
  File "C:\Python27\lib\urllib2.py", line 254, in get_type
    raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">

【问题讨论】:

  • self.__original的价值是什么
  • 我是新手,不知道 self.__original 是什么意思。感谢您尝试提供帮助。我是 python 新手

标签: python python-2.7 search-engine


【解决方案1】:

我想我知道您的问题是什么,这只是因为我自己过去曾产生过类似的错误。您需要指定一个 url 类型。为了演示,请看下面的脚本:

from urllib.request import urlopen as u
u('google.com')

运行时,这个小脚本会出现错误:ValueError: unknown url type: google.com,这与您的问题完全相同。但是,当我将第二行更改为:

u('http://google.com')

效果很好。

所以,我认为您需要在 self.__original 前面添加 'http://' 或您使用的任何 url 类型。

【讨论】:

  • 是的 iCodez。我更改了 url 格式,实际上我在我的代码中看到了一些进展。请我是 python 新手,所以如果我的问题看起来很愚蠢,请不要介意。
  • @Parousia - 当然。我们都必须从某个地方开始。仅仅因为我们还没有做某事并不意味着我们是愚蠢的。无论如何,如果我的回答适当地解决了您的问题,那么您应该接受它(单击勾号)以保持整洁有序。
  • 感谢@iCodez。我想我会继续研究代码一段时间。现在我只是想很好地掌握python语言-达到程序员的顿悟。但如果您能帮助我理解“self.__original”的含义,我将不胜感激?
  • @Parousia - 好吧,我不能肯定地说。它绝对是urllib2 脚本中的一个类的属性。如果我不得不猜测,我会说这是你输入的 URL(你知道,就像上面我的 'google.com' 和 'http://google.com')。
猜你喜欢
  • 1970-01-01
  • 2012-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多