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.

¿Fue útil?

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
scroll top