Pergunta

Eu estava tentando a pouco.ly api para shorterning e tenho que trabalhar.Ele retorna para o meu script de um documento xml.Eu queria extrair a tag, mas não consigo analisá-lo corretamente.

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

Assim the_page contém o documento xml.Eu tentei:

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

isto provoca um erro.o que estou fazendo de errado?

Foi útil?

Solução

Você não fornecer uma mensagem de erro, então não posso ter certeza de que este é o único erro.Mas, xml.minidom.parse não tome uma seqüência de caracteres.A partir do docstring para parse:

Analisar um arquivo em um DOM pelo nome do arquivo ou arquivo de objeto.

Você deve tentar:

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

desde response comportar-se como um objeto de arquivo.Ou você pode usar o parseString método em minidom em vez disso (e, em seguida, passar the_page como argumento).

EDITAR:para extrair o URL, você precisará fazer:

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

O resultado de getElementsByTagName é uma lista de todos os nós correspondentes (apenas um neste caso). url é um Elemento como você notou, o qual contém uma criança nó de Texto, que contém os dados que você precisa.

Outras dicas

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

Consulte a documentação para xml.dom.minidom.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top