python - tutorial - BeautifulSoup-¿modificando todos los enlaces en una pieza de HTML?
web scraping python (3)
Necesito poder modificar cada enlace en un documento HTML. Sé que necesito usar SoupStrainer
pero no estoy 100% seguro de cómo implementarlo. Si alguien pudiera dirigirme a un buen recurso o proporcionar un ejemplo de código, sería muy apreciado.
Gracias.
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(''<p>Blah blah blah <a href="http://google.com">Google</a></p>'')
for a in soup.findAll(''a''):
a[''href''] = a[''href''].replace("google", "mysite")
print str(soup)
Esta es la solución de Lusid, pero como no tenía un intérprete de Python frente a él, no pudo probarlo y tuvo algunos errores. Solo quería publicar las condiciones de trabajo. ¡Gracias Lusid!
Intenté esto y funcionó, es más fácil evitar el uso de expresiones regulares para hacer coincidir cada ''href''
:
from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll(''a''):
a[''href''] = "mysite"
Compruébalo, en documentos bs4 .
Tal vez algo así podría funcionar? (No tengo un intérprete de Python en frente de mí, desafortunadamente)
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(''<p>Blah blah blah <a href="http://google.com">Google</a></p>'')
for a in soup.findAll(''a''):
a[''href''] = a[''href''].replace("google", "mysite")
result = str(soup)