Domanda

Stavo provando il bit.ly API per lo shortyning e ha ottenuto il lavoro.Ritorna al mio script un documento XML.Volevo estrarre il tag ma non riesco a ansimare correttamente.

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

Quindi la superficie contiene il documento XML.Ho provato:

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

Questo provoca un errore.Cosa sto facendo male?

È stato utile?

Soluzione

Non si fornisce un messaggio di errore in modo che non possa essere sicuro che questo è l'unico errore.Ma xml.minidom.parse non prende una stringa.Dal docstring per parse:

.

Analizza un file in un DOM con nome file o file.

Dovresti provare:

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

Poiché response si comporterà come un oggetto file.Oppure è possibile utilizzare il metodo parseString in minidom invece (e quindi passare the_page come argomento).

Modifica: per estrarre l'URL, dovrai fare:

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

Il risultato di getElementsByTagName è un elenco di tutti i nodi corrispondenti (solo uno in questo caso).url è un elemento come notato, che contiene un nodo di testo figlio, che contiene i dati necessari.

Altri suggerimenti

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

Vedere la documentazione per xml.dom.minidom .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top