BeautifulSoup: Was ist der Unterschied zwischen den Parsern „lxml“, „html.parser“ und „html5lib“?

Lesezeit: 1 Minute

BeautifulSoup Was ist der Unterschied zwischen den Parsern „lxml „htmlparser
Du hast Hathaway

Was ist bei der Verwendung von Beautiful Soup der Unterschied zwischen „lxml“ und „html.parser“ und „html5lib“?

Wann würden Sie eines über dem anderen verwenden und die Vorteile von jedem? Als ich sie benutzte, schienen sie austauschbar zu sein, aber die Leute hier korrigieren mich, dass ich eine andere verwenden sollte. Ich möchte mein Verständnis stärken; Ich habe hier ein paar Beiträge darüber gelesen, aber sie gehen überhaupt nicht viel auf die Verwendung ein.

Beispiel:

soup = BeautifulSoup(response.text, 'lxml')

Von dem Dokumente‘s zusammengefasste Tabelle der Vor- und Nachteile:

  1. html.parserBeautifulSoup(markup, "html.parser")

    • Vorteile: Inklusive Batterien, Ordentliche Geschwindigkeit, Nachsichtig (ab Python 2.7.3 und 3.2.)

    • Nachteile: Nicht sehr nachsichtig (vor Python 2.7.3 oder 3.2.2)

  2. lxmlBeautifulSoup(markup, "lxml")

    • Vorteile: Sehr schnell, Nachsichtig

    • Nachteile: Externe C-Abhängigkeit

  3. html5libBeautifulSoup(markup, "html5lib")

    • Vorteile: Extrem nachsichtig, Parst Seiten wie ein Webbrowser, Erstellt gültiges HTML5

    • Nachteile: Sehr langsam, externe Python-Abhängigkeit

Die Hauptunterschiede werden in der BeautifulSoup-Dokumentation hervorgehoben:

Die Grundüberlegung, warum Sie einen Parser anderen vorziehen würden:

  • html.parser– eingebaut – keine zusätzlichen Abhängigkeiten erforderlich
  • html5libder mildeste – Verwenden Sie es besser, wenn HTML defekt ist
  • lxmldie schnellste

  • Danke – html5lib (als Parser von defektem HTML) hat gerade meinen Speck gerettet

    – kd88

    23. Mai 2018 um 15:55 Uhr


993830cookie-checkBeautifulSoup: Was ist der Unterschied zwischen den Parsern „lxml“, „html.parser“ und „html5lib“?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy