构建搜索引擎

时间:2013-08-22 14:43:33

标签: python python-2.7 search-engine

我正在尝试使用Udacity的python类构建一个搜索引擎。 在某一点,我运行我的程序,并与一大堆其他东西得到这个错误。有人可以帮助我开始理解所有这些错误。

追踪(最近一次呼叫最后一次):

  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">

1 个答案:

答案 0 :(得分:0)

我想我知道你的问题是什么,这只是因为我过去自己也犯了类似的错误。您需要指定网址类型。要演示,请查看以下脚本:

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

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

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

它工作正常。

因此,我认为您需要将'http://'或您正在使用的任何网址类型添加到self.__original的前面。