Я пытался попробовать bit.ly api для shorterning и заставить его работать. Он возвращает мой script XML-документ. Я хотел извлечь тег, но can not, кажется, разбирает его должным образом.
askfor = urllib2.Request(full_url)
response = urllib2.urlopen(askfor)
the_page = response.read()
Таким образом, the_page содержит XML-документ. Я пробовал:
from xml.dom.minidom import parse
doc = parse(the_page)
это вызывает ошибку. что я делаю неправильно?
Вы не предоставляете сообщение об ошибке, поэтому я не могу быть уверенным, что это единственная ошибка. Но xml.minidom.parse
не принимает строку. Из docstring для parse
:
Разберите файл в DOM по имени файла или файлу.
Вы должны попробовать:
response = urllib2.urlopen(askfor)
doc = parse(response)
так как response
будет вести себя как файл-объект. Или вы можете использовать метод parseString
в minidom
вместо этого (и затем передать the_page
в качестве аргумента).
РЕДАКТИРОВАТЬ: чтобы извлечь URL-адрес, вам нужно будет:
url_nodes = doc.getElementsByTagName('url')
url = url_nodes[0]
print url.childNodes[0].data
Результатом getElementsByTagName
является список всех совпадений узлов (всего один в этом случае). url
- это элемент, который вы заметили, который содержит дочерний текст node, который содержит нужные вам данные.
from xml.dom.minidom import parseString
doc = parseString(the_page)
Смотрите документацию для xml.dom.minidom
.