Frage

Ich muss in der Lage, jeden einzelnen Link in einem HTML-Dokument zu ändern. Ich weiß, dass ich brauche die SoupStrainer zu verwenden, aber ich bin nicht 100% positiv auf, wie es zu implementieren. Wenn jemand mich auf eine gute Ressource lenken könnte oder ein Codebeispiel liefern, wäre es sehr geschätzt werden.

Danke.

War es hilfreich?

Lösung

Vielleicht wäre so etwas wie dies funktionieren? (Ich habe nicht einen Python-Interpreter vor mir leider)

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)

Andere Tipps

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)

Dies ist Lusid-Lösung, aber da er keinen Python-Interpreter vor ihm hat, war er nicht in der Lage, es zu testen und es hatte ein paar Fehler. Ich wollte nur den betriebsbereiten Zustand hinterlassen. Dankten Lusid!

habe ich versucht, diese und es funktioniert, ist es einfacher, mit regexp zu vermeiden, für jede 'href' passend:

from bs4 import BeautifulSoup as bs
soup = bs(htmltext)
for a in soup.findAll('a'):
    a['href'] = "mysite"

Überprüfen Sie es heraus, auf BS4 docs .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top