BeautifulSoup - Modifizieren alle Links in einem Stück HTML?
-
19-08-2019 - |
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.
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 .