Extrahieren von Daten aus HTML-Dateien mit Python und BeautifulSoup
Brauche ich zum extrahieren von Daten aus HTML-Dateien. Die betroffenen Dateien sind, die meisten wahrscheinlich automatisch generiert. Hochgeladen habe ich den code einer dieser Dateien auf Pastebin: http://pastebin.com/9Nj2Edfv. Das ist der link zu der eigentlichen Seite: http://eur-lex.europa.eu/Notice.do?checktexts=checkbox&val=60504%3Acs&pos=1&page=1&lang=en&pgs=10&nbl=1&list=60504%3Acs%2C&hwords=&action=GO&visu=%23texte
Benötigten Daten zu extrahieren ist zu finden unter den verschiedenen Rubriken.
Dies ist, was ich habe, so weit:
from BeautifulSoup import BeautifulSoup
ecj_data = open("data\ecj_1.html",'r').read()
soup = BeautifulSoup(ecj_data)
celex = soup.find('h1')
auth_lang = soup('ul', limit=14)[13].li
procedure = soup('ul', limit=20)[17].li
print "Celex number:", celex.renderContents(),
print "Authentic language:", auth_lang
print "Type of procedure:", procedure
Habe ich alle Daten lokal gespeichert, das ist der Grund, es öffnet sich die Datei ecj_1.html.
Die Celex-Nummer und die Authentische Sprache funktioniert einigermaßen gut.
celex gibt
"Celex number:
61977J0059"
auth_lang zurück "Authentic language: <li>French</li>"
Brauche ich nur den Inhalt des h1-tag (nicht die Pause am Ende).
[Auch, ich muss auth_lang Rückkehr nur "Französisch", und nicht die <li>
-tags.]
Ist das kein problem mehr. Ich merkte, ich könnte nur hinzufügen ".text" Ende "auth_lang".
Prozedur auf der anderen Seite gibt diese:
Type of procedure: <li>
<strong>Type of procedure:</strong>
<br />
Reference for a preliminary ruling
</li>
das ist ganz falsch, wie ich gerade brauche, bis Sie wieder "Vorabentscheidung".
Gibt es eine Möglichkeit, kann ich dies realisieren?
Zweites edit:
Ich ersetzte celex = soup.find('h1')
mit celex = soup('h1', limit=2)[0]
und Hinzugefügt .text
zu drucken celex.
InformationsquelleAutor A2D2 | 2012-03-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Inhalt jedes der gefundenen Sequenzen sind Listen, nur die ersten beiden sind length-1. Allerdings
procedure
5 Elemente lang, und der Eintrag, den Sie sind, nachdem (in diesem Fall) ist der 4. Division. Ich habe splitlines(), um loszuwerden, die Zeilenumbrüche auch.Ausgabe:
InformationsquelleAutor