Frage

Ich habe die bit.ly-API zur Verkürzung ausprobiert und sie zum Laufen gebracht.Es gibt ein XML-Dokument an mein Skript zurück.Ich wollte das Tag extrahieren, kann es aber anscheinend nicht richtig analysieren.

askfor = urllib2.Request(full_url)
response = urllib2.urlopen(askfor)
the_page = response.read()

the_page enthält also das XML-Dokument.Ich habe es versucht:

from xml.dom.minidom import parse
doc = parse(the_page)

Dies führt zu einem Fehler.Was mache ich falsch?

War es hilfreich?

Lösung

Da Sie keine Fehlermeldung angeben, kann ich nicht sicher sein, ob dies der einzige Fehler ist.Aber, xml.minidom.parse braucht keine Zeichenfolge.Aus der Dokumentzeichenfolge für parse:

Analysieren Sie eine Datei nach Dateiname oder Dateiobjekt in ein DOM.

Du solltest es versuchen:

response = urllib2.urlopen(askfor)
doc = parse(response)

seit response verhält sich wie ein Dateiobjekt.Oder Sie könnten das verwenden parseString Methode in minidom stattdessen (und dann passieren the_page als Argument).

BEARBEITEN:Um die URL zu extrahieren, müssen Sie Folgendes tun:

url_nodes = doc.getElementsByTagName('url')
url = url_nodes[0]
print url.childNodes[0].data

Das Ergebnis von getElementsByTagName ist eine Liste aller übereinstimmenden Knoten (in diesem Fall nur einer). url ist, wie Sie bemerkt haben, ein Element, das einen untergeordneten Textknoten enthält, der die von Ihnen benötigten Daten enthält.

Andere Tipps

generasacodicetagpre.

Siehe die Dokumentation für xml.dom.minidom .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top