Im Folgenden werden 10 Möglichkeiten zum Schreiben von CSS-Selektoren gezeigt. Jeder CSS-Sektor ruft ein Element von "Eurasien" von "Kontinenten.html" ab.
<ul id="continents">
<li id="au">Australia</li>
<li id="na">NorthAmerica</li>
<li id="sa">SouthAmerica</li>
<li id="ea">Eurasia</li>
<li id="af">Africa</li>
</ul>
from bs4 import BeautifulSoup
fp = open("continents.html", encoding="utf-8")
soup = BeautifulSoup(fp, 'html.parser')
sel = lambda q: print(soup.select_one(q).string)
sel("#ea") # (1)
sel("li#ea") # (2)
sel("ul > li#ea") # (3)
sel("#continents #ea") # (4)
sel("#continents > #ea") # (5)
sel("ul#continents >li#ea") # (6)
sel("li[id='ea']") # (7)
sel("li:nth-of-type(4)") # (8)
print(soup.select("li")[3].string) # (9)
print(soup.find_all("li")[3].string) # (10)
(1) Extrahieren Sie das Element, dessen ID-Attribut "ea" ist (2) Extrahieren Sie das Element mit dem Tag "
<li>
Tags
(9) Verwenden Sie "select ()", um das "Ausführungsergebnis
Eurasia Eurasia Eurasia Eurasia Eurasia Eurasia Eurasia Eurasia Eurasia Eurasia
Hier ist eine Zusammenfassung der Funktionen, die zum Scraping verwendet werden.
find ()
Methode, find_all ()
MethodeExtrahieren Sie ein Element, indem Sie ein beliebiges Attribut angeben. Die Methode find () kann ein Element abrufen, und die Methode find_all () kann mehrere Elemente gleichzeitig abrufen.
Anwendungsbeispiel
title =oup.find (id = "title") # Ruft das Element ab, dessen ID-Attribut title ist
linls =oup.find_all ("a") # Alle Elemente mit Tags versehen
select ()
Methode, select_all ()
Methode
Geben Sie den Selektor durch das Argument an und rufen Sie das Element ab. Die select ()
Methode kann ein Element erhalten, und die select_all ()
Methode kann mehrere Elemente erhalten. Das Verwendungsbeispiel ist wie in sel-Continents.py
oben.Ich verstehe, wie man kratzt, aber die Python-Grammatik hört oft auf zu verstehen, deshalb möchte ich den zugrunde liegenden Zweck des Verständnisses der Python-Grammatik im Auge behalten.
Recommended Posts