Python BeautifulSoup equivalent to lxml make_links_absolute
Question: So lxml has a very hand feature: make_links_absolute:

    
    
    doc = lxml.html.fromstring(some_html_page)
    doc.make_links_absolute(url_for_some_html_page)
    

and all the links in doc are absolute now. Is there an easy equivalent in
BeautifulSoup or do I simply need to pass it through urlparse and normalize
it:

    
    
    soup = BeautifulSoup(some_html_page)
    for tag in soup.findAll('a', href=True):
        url_data = urlparse(tag['href'])
        if url_data[0] == "":
            full_url = url_for_some_html_page + test_url
    


Answer: In my answer to [What is a simple way to extract the list of URLs on a webpage
using python?](http://stackoverflow.com/questions/4139989/what-is-a-simple-
way-to-extract-the-list-of-urls-on-a-webpage-using-python/4140102#4140102) I
covered that incidentally as part of the extraction step; you could easily
write a method to do it on the soup and not just extract it.

    
    
    import urlparse
    
    def make_links_absolute(soup, url):
        for tag in soup.findAll('a', href=True):
            tag['href'] = urlparse.urljoin(url, tag['href'])
    

