导入Beautifulsoup时出错

时间:2016-08-22 18:09:15

标签: python beautifulsoup

我正在编写一些语法来解析网站并获得所有href。但是,当我尝试导入bs4时,会弹出一个错误,说" ImportError:无法导入名称' HTMLParseError'。我使用的是Python 3.5.2。

我接受过去的参考,并知道它可能是由旧版本的bs4引起的,因此已将其升级到版本4.5.1。但是,错误仍然存​​在。这是我的语法有问题(我在下面附上,这也是过去的参考)。或者我必须寻找另一种工具来完成任务?

有人有任何想法吗?还有一件事,我也尝试安装lxml(它说无法找到vcvarsall.bat)但也失败了。所以,我可以使用的工具不多。

from bs4 import BeautifulSoup
import urllib.request

def open_html():

    resp = urllib.request.urlopen("http://www.gpsbasecamp.com/national-parks")
    soup = BeautifulSoup(resp, from_encoding=resp.info().get_param('charset'))

    for link in soup.find_all('a', href=True):
        print(link['href'])

if __name__ == '__main__':
    open_html()

2 个答案:

答案 0 :(得分:0)

如果您想手动安装lxml,可以下载从页面http://www.lfd.uci.edu/~gohlke/pythonlibs/复制的lxml .whl文件。接下来打开cmd,cd到dict保存此文件的位置,然后使用命令:

  

pip install [name_of_file]

但这是解决此问题的最简单方法,否则我会将您推荐给主题:

  

pip install gives error: Unable to find vcvarsall.bat

答案 1 :(得分:0)

作为替代措施,安装Anaconda python,其中包括BS 4.4.1和lxml 3.6(https://docs.continuum.io/anaconda/pkg-docs)。总的来说,Anaconda使包管理变得轻而易举。