Ein Memorandum über die Suche nach HTML-Tags von beautifulsoup4
.
#Alle p-Tags
find_all("p")
#Es wurde nur das erste p-Tag gefunden
find("p")
#ein tag und href beginnend mit hogehoge
import re
find_all("a", href=re.compile("^hogehoge"))
#Geben Sie die Eltern-Kind-Beziehung lose an
select('body div p')
#Eltern-Kind-Beziehung Nr. 2, streng
select('body > div > p')
#Name der Klasse
select('.myclass')
#ID-Name
select('#myid')
#UND Zustand
select('.myclass1.myclass2')
#Der dritte HTML-Code unten<li>Suche nach Tags
# <html>
# <body>
# <ul>
# <li>Unbestimmt</li>
# <li>Unbestimmt</li>
# <li>Es ist angegeben</li>
# <li>Unbestimmt</li>
# </ul>
# </body>
# </html>
select('body > ul > li:nth-of-type(3)')
Der Grund, warum es nicht funktionierte, war, dass das HTML der Scraping-Quell-Site ein Start-Tag, aber kein Close-Tag hatte. Die Lösung besteht darin, das Start-Tag zu entfernen. (Das schließende Tag war übrigens in den Entwicklertools von Chrome vorhanden, sodass ich es erst bemerkte, als ich mir die Quelle der Seite ansah ...)
url = "http://hogehoge/"
soup = BeautifulSoup(url.text, "lxml")
#Entfernen Sie das dd-Tag, da für das dd-Tag kein schließendes Tag vorhanden ist
for tag in soup.find_all('dd'):
tag.unwrap()
Entfernen Sie alle <dd>
Tags.
Wenn Sie jedoch .decompose ()
verwenden, verschwinden auch die Elemente nach <dd>
. Löschen Sie daher nur das Tag mit .unwrap ()
.
Recommended Posts