Python BeautifulSoup equivalente a lxml make_links_absolute

Así que lxml tiene una característica muy de mano: make_links_absolute:

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

y todos los enlaces en doc son absolutos ahora. ¿Hay un equivalente fácil en BeautifulSoup o simplemente necesito pasarlo a través de urlparse y normalizarlo?

 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 

En mi respuesta a ¿Qué es una forma sencilla de extraer la lista de URL en una página web usando python? Cubrí eso incidentalmente como parte del paso de extracción; Usted podría escribir fácilmente un método para hacerlo en la sopa y no solo extraerlo.

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