Frage
Ich möchte den Titel einer Webseite holen, die ich urllib2 mit öffnen. Was ist der beste Weg, dies zu tun, die HTML zu analysieren und finden, was ich (vorerst nur der -tag aber vielleicht in Zukunft mehr brauche) benötigen.
Gibt es einen guten Parsing lib für diesen Zweck?
Lösung
Ja, ich würde empfehlen, BeautifulSoup
Wenn Sie den Titel sind immer es ist einfach:
soup = BeautifulSoup(html)
myTitle = soup.html.head.title
oder
myTitle = soup('title')
Genommen von der Dokumentation
Es ist sehr robust und wird die HTML egal analysiert, wie chaotisch es ist.
Andere Tipps
Versuchen Sie Schöne Suppe :
url = 'http://www.example.com'
response = urllib2.urlopen(url)
html = response.read()
soup = BeautifulSoup(html)
title = soup.html.head.title
print title.contents
Warum hat sie eine ganze zusätzliche Bibliothek für eine Aufgabe zu importieren. Keine regulären Ausdrücke? war nicht der Antrag auf urllib nicht BS4 oder mech, die Dritten sind? mit Standard-Bibliotheken analysieren, um die HTML-und passen die Zeichenfolge dann teilen Sie die '>'
'<'
mit Re oder whateves zu tun.
N=(len(html))
for a in html(N):
if '<title>' in a:
Title=(str(a))
das ist Python 2 Ich denke, man kann es abzustreifen
Verwenden Sie Schöne Suppe .
html = urllib2.urlopen("...").read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
print soup.title.string