在Python 3.5中导入bs4

时间:2015-02-26 14:35:01

标签: python python-3.x beautifulsoup html-parsing python-3.5

我已经安装了Python 3.5和Beautifulsoup4。当我尝试导入bs4时,我收到以下错误。那有什么问题吗?或者我应该只安装Python 3.4? 请非常明确 - 我是编程新手。非常感谢!

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 30, in    <module>
   from .builder import builder_registry, ParserRejectionMarkup
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 308, in <module>
   from . import _htmlparser
  File "C:\Python 3.5\lib\sit-packages\bs4\_htmlparser.py", line 7, in <module>
   from html.parser import ( 
ImportError: cannot import name 'HTMLParseError'

3 个答案:

答案 0 :(得分:26)

更新:从4.4.0开始,BeautifulSoup与Python 3.5兼容。升级:

pip install --upgrade beautifulsoup4

旧回答:

由于Deprecate strict mode of HTMLParser问题所做的更改:

  

问题#15114:HTMLParser的严格模式和参数,   HTMLParser.error和HTMLParserError异常已被删除。

我担心beautifulSoup4目前与Python 3.5不兼容。使用Python 3.4。

答案 1 :(得分:20)

更新:BeautifulSoup 4.4.0已经更新为python3.5兼容,所以如果您仍然遇到此问题, public static Bitmap decodeSampledBitmapFromResource(byte[] data, int reqWidth, int reqHeight) { final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(data, 0, data.length, options); options.inScaled = true; options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); options.inJustDecodeBounds = false; Bitmap bmpOriginal = BitmapFactory.decodeByteArray(data, 0, data.length, options); return toGrayScale(bmpOriginal); } 应该可以解决问题。

答案 2 :(得分:4)

我已经向作者发送了有关此错误的跟进信息。如果你想在Python 3.5a上安装BeautifulSoup,我已经将源代码的工作补丁上传到了github。

https://github.com/jjangsangy/BeautifulSoup4

您可以使用setup.py安装它,也可以只复制&amp;将此代码粘贴到终端。

git clone https://github.com/jjangsangy/BeautifulSoup4 \
    && cd BeautifulSoup4 \
    && python3.5 setup.py install

我在这里假设,因为你正在尝试3.5a,你的python解释器安装了site-packages目录的适当用户权限,所以不需要sudo调用。