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.

Était-ce utile?

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 . .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top