Ausführliche Erklärung des Python-Crawler-Webseitenanalyseartefakts Xpath

1. Einführung in XPath

XPath ist eine Sprache zum Auffinden von Informationen in XML-Dokumenten. Ursprünglich zum Durchsuchen von XML-Dokumenten konzipiert, kann aber auch zum Durchsuchen von HTML-Dokumenten verwendet werden.

2. Installieren Sie lxml

lxml ist eine Parsing-Bibliothek eines Drittanbieters für Python, unterstützt das Parsen von HTML und XML und ist äußerst effizient, wodurch die Mängel der XML-Standardbibliothek von Python beim XML-Parsen ausgeglichen werden.

So installieren Sie Bibliotheken von Drittanbietern:pip install lxml

3. Prinzip der XPath-Analyse

  1. Instanziieren Sie ein Etree-Objekt. Die analysierten Seitenquelldaten müssen in das Objekt geladen werden.
  2. Rufen Sie die XPath-Methode im Etree-Objekt in Kombination mit XPath-Ausdrücken auf, um die Positionierung von Etiketten und die Erfassung von Inhalten zu realisieren.

4. Instanziieren Sie das Etree-Objekt

  1. Laden Sie die Quellcodedaten im lokalen HTML-Dokument in das Etree-Objekt:etree.parse(filePath)
  2. Laden Sie die aus dem Internet erhaltenen Quellcodedaten in das Objekt:etree.HTML(response.text)
  3. xpath('xpath expression')

5. XPath-Pfadausdruck

Ausdruck veranschaulichen
/ Wählen Sie aus dem Wurzelknoten aus
// Stellt mehrere Ebenen dar, beginnend an einer beliebigen Position
. Aktuellen Knoten auswählen
Wählen Sie den übergeordneten Knoten des aktuellen Knotens aus
@ Attribut auswählen
//div[@class='title'] tag[@attrName=“attrValue“] Attributpositionierung
//div[@class=“zhang“]/p[3] Indexpositionierung, der Index beginnt bei 1
/Text() Was erhalten wird, ist der direkte Textinhalt im Etikett
//Text() Nicht unmittelbarer Textinhalt in Tags (alle Textinhalte)
/@attrName ==>img/src Nehmen Sie Attribute

6. Kombiniert mit einer tatsächlichen Kampferklärung

Nehmen Sie zur Erläuterung die CSDN-Website als Beispiel
Fügen Sie hier eine Bildbeschreibung ein
Beispiel: Hier möchte ich den Titel des Hauptblogs auf der Startseite der offiziellen Website abrufen, die Konsole öffnen (klicken Sie auf den kleinen Pfeil auf der Konsole oder drücken Sie gleichzeitig Strg + Umschalt + C), auf den Titel zeigen und Suchen Sie es entsprechend dem Klassenwert des div-Tags (dies ist normalerweise der Fall). Normalerweise verwenden wir mehr XPath-Syntax.

from lxml import etree
import requests

headers = {
    
    
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
url = "https://www.csdn.net/"
response = requests.get(url=url, headers=headers)
# 使用etree解析
data = etree.HTML(response.text)
# //div表示任意路径下的div标签
names = data.xpath("//div[@class='headlines']/div[@class='headlines-right']//div[@class='headswiper-item']/a/text()")
url = data.xpath("//div[@class='headlines']/div[@class='headlines-right']//div[@class='headswiper-item']/a/@href")

blog_list = list(zip(names, url))
for blog in blog_list:
    print(blog)


Erkennen Sie den Effekt:
Fügen Sie hier eine Bildbeschreibung ein

Ich denke du magst

Origin blog.csdn.net/qq_44723773/article/details/128760503
Empfohlen
Rangfolge