refer to: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801476
When trying to perform the following with Python 3:
from lxml.html.soupparser import fromstring
The following error is raised:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/lxml/html/soupparser.py", line 7, in <module>
from BeautifulSoup import \
ImportError: No module named 'BeautifulSoup'
According to StackOverflow <http://stackoverflow.com/q/14042023>, this is
because the currently packaged version of python3-lxml depends on version 3 of
BeautifulSoup. However, Debian ships version 4 of that module (python3-bs4).
According to the same source, recent lxml versions know how to use version 4 of
BeautifulSoup, see e.g.,
<https://github.com/lxml/lxml/blob/master/src/lxml/html/soupparser.py>.
解决办法:
import sys, bs4
sys.modules['BeautifulSoup'] = bs4
from lxml.html.soupparser import fromstring