BeautifulSoup: ¿modifica todos los enlaces en una pieza de HTML?
-
19-08-2019 - |
Pregunta
Necesito poder modificar cada enlace en un documento HTML. Sé que necesito usar el SoupStrainer
pero no soy 100% positivo sobre cómo implementarlo. Si alguien pudiera dirigirme a un buen recurso o proporcionar un ejemplo de código, sería muy apreciado.
Gracias.
Solución
¿Quizás algo como esto funcionaría? (No tengo un intérprete de Python frente a 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)
Otros consejos
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!
Probé esto y funcionó, es más fácil evitar usar regexp para hacer coincidir cada 'href'
:
from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll('a'):
a['href'] = "mysite"
Echa un vistazo, en documentos bs4 .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow