Насколько я знаю, такой библиотеки нет, но вы можете использовать некоторую html-библиотеку, например lxml или BeautifulSoup вместе с urlparse
стандартный питон муля Я предпочитаю использовать lxml
и XPath .
Например, мы сохранили страницу StackOverflow как doc.html
, и мы хотим сделать что-то с узлами, которые содержат href
, src
, actions
:
import urlparse
import lxml.html
with open('doc.htm') as f:
doc = lxml.html.parse(f)
for el in doc.xpath('//*[@href | @src | @action]'):
tag = el.tag
href = el.get('href', '')
if not href:
continue
# not really need to check for '/' when using urljoin, but this is just example
if href.startswith('/'):
el.attrib['href'] = urlparse.urljoin('http://stackoverflow.com/', href)
# then get string representation of tree back
result = lxml.html.tostring(doc)
В этом примере я конвертирую только относительные href
, начатые с '/', в абсолютные, используя urlparse.urljoin
, и не все элементы из результата XPath используются. Но вы можете настроить его под свои нужды.