Filtering HTML with python

From Media Design: Networked & Lens-Based wiki
Jump to navigation Jump to search

Absolutizing hrefs in HTML

from urllib.parse import urljoin
from xml.etree import ElementTree as ET

def absolute_hrefs(html, baseurl):
    t = html5lib.parseFragment(html, treebuilder = "etree", namespaceHTMLElements = False)
    for a in t.findall(".//*[@href]"):
        linkclass = a.attrib.get("class", "")
        href = urljoin(baseurl, a.attrib.get("href"))
        a.attrib['href'] = href
    html = ET.tostring(t, method="html", encoding="unicode")
    return html