435 Stimmen

Bs4.FeatureNotFound: Es konnte kein Baumeigenschaftssucher mit den von Ihnen angeforderten Funktionen gefunden werden: lxml. Müssen Sie eine Parser-Bibliothek installieren?

...
soup = BeautifulSoup(html, "lxml")
Datei "/Library/Python/2.7/site-packages/bs4/__init__.py", Zeile 152, in __init__
% ",".join(features))
bs4.FeatureNotFound: Konnte keinen Baumersteller mit den angeforderten Funktionen finden: lxml. Müssen Sie eine Parser-Bibliothek installieren?

Die oben genannte Ausgabe erscheint auf meinem Terminal. Ich benutze Mac OS 10.7.x. Ich habe Python 2.7.1 und bin diesem Tutorial gefolgt, um Beautiful Soup und lxml zu installieren, die beide erfolgreich installiert wurden und mit einer separaten Testdatei hier gefunden werden können. Im Python-Skript, das diesen Fehler verursacht, habe ich folgende Zeile eingefügt: from pageCrawler import comparePages Und in der Datei pageCrawler habe ich die folgenden beiden Zeilen eingefügt: from bs4 import BeautifulSoup from urllib2 import urlopen

Wie kann dieses Problem gelöst werden?

19voto

Bashar Punkte 191

Ich verwende Python 3.6 und hatte den gleichen Fehler in diesem Beitrag. Nachdem ich den Befehl ausgeführt habe:

python3 -m pip install lxml

hat sich mein Problem gelöst

18voto

Shankar Vishnu Punkte 231

Installieren Sie den LXML-Parser in der Python-Umgebung.

pip install lxml

Ihr Problem wird gelöst sein. Sie können auch das integrierte Python-Paket verwenden:

soup = BeautifulSoup(s,  "html.parser")

Hinweis: Das Modul "HTMLParser" wurde in Python3 in "html.parser" umbenannt

14voto

Yogesh Punkte 1294

Statt lxml zu verwenden, verwenden Sie html.parser, können Sie dieses Code-Stück verwenden:

soup = BeautifulSoup(html, 'html.parser')

8voto

Projesh Bhoumik Punkte 1008

Auch wenn BeautifulSoup standardmäßig den HTML-Parser unterstützt Wenn Sie andere Python-Parser von Drittanbietern verwenden möchten, müssen Sie diesen externen Parser wie (lxml) installieren.

soup_object= BeautifulSoup(markup, "html.parser") #Python HTML parser

Aber wenn Sie keinen Parser als Parameter angegeben haben, erhalten Sie eine Warnung, dass kein Parser angegeben wurde.

soup_object= BeautifulSoup(markup) #Warnung

Um einen anderen externen Parser zu verwenden, müssen Sie ihn installieren und dann angeben. wie

pip install lxml

soup_object= BeautifulSoup(markup, 'lxml') # C-abhängiger Parser 

Externe Parser haben c- und python-Abhängigkeiten, die einige Vor- und Nachteile haben können.

6voto

zabop Punkte 5436

pip install lxml dann xml in soup = BeautifulSoup(URL, "xml") behalten hat den Job auf dem Mac erledigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X