Seite 1 von 1

BeautifulSoup: Problem mit &

Verfasst: Montag 3. Juni 2019, 15:52
von AugustQ
Hi,

ich bin über ein Problem gestolpert, das ich hier mal darstellen möchte.

Ein Beispielprogramm:

Code: Alles auswählen

myHtml='(C&A)'
soup = BeautifulSoup(myHtml, 'html.parser')
print(soup)
myHtml='(C&A)'
soup = BeautifulSoup(myHtml, 'html.parser')
print(soup)
dies liefert folgende Ausgabe:

Code: Alles auswählen

(C&A)
(C&A;)
d.h. in einer HTML-Seite steht der Name C&A, BeautifulSoup macht daraus: C&A;
es wird also ein Semikolon angehängt.

Das ist wohl ein Fehler in BeautifulSoup. Wo kann ich diesen Fehler melden?

Die Daten kommen aus einer HTML-Seite, die ich nicht verändern kann.

Schönen Gruß
AugustQ

Re: BeautifulSoup: Problem mit &

Verfasst: Montag 3. Juni 2019, 16:31
von __deets__
Bei den Entwicklern von BS - sollte alles angegeben sein auf pypi.python.org. Einfach danach suchen.

Re: BeautifulSoup: Problem mit &

Verfasst: Montag 3. Juni 2019, 17:30
von Sirius3
@AugustQ: ich kann Dein Verhalten nicht reproduzieren

Code: Alles auswählen

>>> bs4.BeautifulSoup('(C&A)', 'html.parser')
(C&A)
welche Python und BS4-Version verwendest Du?

Re: BeautifulSoup: Problem mit &

Verfasst: Dienstag 4. Juni 2019, 16:50
von AugustQ
python: 3.6
BeautifulSoup: 4.6.0

Re: BeautifulSoup: Problem mit &

Verfasst: Dienstag 4. Juni 2019, 16:53
von AugustQ
das habe ich gerade gemacht:

Code: Alles auswählen

import bs4
print (bs4.__version__)
print(bs4.BeautifulSoup('(C&A)', 'html.parser'))
und das erhalte ich:

Code: Alles auswählen

4.6.0
(C&A;)
also: ein zusätzliches Semikolon hinter dem A.

Re: BeautifulSoup: Problem mit &

Verfasst: Dienstag 4. Juni 2019, 16:59
von __blackjack__
Konnte ich nachvollziehen nachdem ich die ältere BS4 4.6.0 installiert habe. Mit der aktuellen Version passiert das nicht.

Re: BeautifulSoup: Problem mit &

Verfasst: Donnerstag 6. Juni 2019, 14:20
von AugustQ
Hi,

Danke für den Hinweis. Ich habe jetzt die Version 4.7.1 installiert und das Problem ist weg.

Erst habe ich BeautifulSoup entfernt und dann per apt-get neu installiert (Version 4.6.0-1): gleiches Problem. Wieder entfernt.

Danach habe ich es mit pip installiert, ganz anderes Problem da Python 2, wieder entfernt.

Danach habe ich die Version für Python 3 installiert und jetzt geht es.

Problem gelöst.