Benutzer-Werkzeuge

Webseiten-Werkzeuge


beautifulsoup
  • Datenextraktor für HTML und XML
  • ist nicht selbst ein Parser, sondern benötigt einen Parser
  • vereinfacht es bestimmte Daten aus den geparsten Daten zu extrahieren
    • vereinfacht die Navigation innehralb des Baums

XML

Initialisierung

  • es muss lxml installiert sein
    • das ist der einzige derzeit unterstützte XML-Parser
from bs4 import BeautifulSoup

Importiert die Klasse

soup = BeautifulSoup(daten, Parsername)

Instanziert ein BeatifulSoup-Objekt.

  • daten ist das zu parsende XML
  • Parsername ist der Name des zu verwendenden Parsers
    • bei XML gibt es derzeit nur einen Parser „xml“

Beispiel:

daten = '<?xml version="1.0" encoding="utf-8"?> <SnapshotDeviceResponse xmlns="http://www.ecma-international.org/standards/ecma-323/csta/ed5">  <crossRefIDorSnapshotData> <snapshotData> <snapshotDeviceResponseInfo> <connectionIdentifier> <callID>9</callID> <deviceID>sip:482735035@172.20.1.7</deviceID> </connectionIdentifier> <localCallState> <compoundCallState> <localConnectionState>connected</localConnectionState> </compoundCallState> </localCallState> </snapshotDeviceResponseInfo> </snapshotData> </crossRefIDorSnapshotData> </SnapshotDeviceResponse>'

soup = BeautifulSoup(daten, 'xml')

soup repräsentiert anschließend den Tree.

Elementzugriff

  • das Objekt was durch die Initialisierung zurückgegeben wurde enthält das Dokument als Tree
  • Jedes Element des Trees ist ein eigenes Objekt (inkl. der Texte zwischen Tags)

Um ein Element im Baum anzusprechen:

soup.Element.Unterelement.Unterunterelement

Beispiel:

soup.crossRefIDorSnapshotData.snapshotData.snapshotDeviceResponseInfo.connectionIdentifier.callID

String-Zugriff

  • Zugriff auf die Strings zwischen Tags
  • Erfolgt über das Objekt „string“
    • ist vom Typ „NavigableString“
soup.Element.Unterelement.Unterunterelement.string

Beispiel:

soup.crossRefIDorSnapshotData.snapshotData.snapshotDeviceResponseInfo.connectionIdentifier.callID.string
beautifulsoup.txt · Zuletzt geändert: 2019/04/08 08:45 von root