BeautifulSoup - modifier tous les liens dans un morceau de HTML?
-
19-08-2019 - |
Question
Je dois pouvoir modifier chaque lien dans un document HTML. Je sais que je dois utiliser SoupStrainer
, mais je ne suis pas 100% positif sur la façon de le mettre en œuvre. Si quelqu'un pouvait me diriger vers une bonne ressource ou donner un exemple de code, ce serait très apprécié.
Merci.
La solution
Peut-être que quelque chose comme ça marcherait? (Je n'ai malheureusement pas d'interprète en python devant moi.)
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)
Autres conseils
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)
C’est la solution de Lusid, mais comme il n’avait pas d’interprète Python devant lui, il n’a pas pu le tester et il a eu quelques erreurs. Je voulais juste afficher les conditions de travail. Merci Lusid!
J'ai essayé cela et cela a fonctionné, il est plus facile d'éviter d'utiliser regexp pour faire correspondre chaque 'href'
:
from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll('a'):
a['href'] = "mysite"
Découvrez-le sur documents bs4 . .