2017-04-15 6 views
-1

Ich versuche, mit diesem Code "src" mit "exampletext" string in HTML-Datei index.html lokale ersetzen gespeichert:Reaplce img Wert in html Python

from BeautifulSoup import BeautifulSoup 
soup = BeautifulSoup(index.html) 
for img in soup.findAll('img'): 
    img['src'] = 'exampletext ' 

einfacher HTML-Code:

<html> 

<body> 
<a href="http://simple_site"/> 
<img src="http://www.samplesite.com/img1"> 

<a href="http://simple_site"/> 
<img src="http://www.samplesite.com/picture2"> 

<a href="http://simple_site"/> 
<img src="http://www.samplesite.com/gallery3"> 

</body> 

</html> 

aber dieser Code funktioniert nicht, kann jeder helfen? Und wie kann ich Änderungen an HTML-Datei speichern, nachdem diese Änderungen?

+2

Könnten Sie bitte ein minimales Beispiel Ihrer HTML-Datei angeben? – datell

+0

Was bedeutet "nicht funktioniert"? Und wo wollen Sie "Änderungen speichern"? – Chris

+0

ok ich füge einfachen Code hinzu – kowal666

Antwort

1

Sie reguläre Ausdrücke verwenden könnte

import re 

repl = 'source' 
html = re.sub('<img\s+src\s*=', '<' + repl + ' src=', s, flags=re.I) 
+0

Ich verwende diesen Code mit Ihrer Frage https://pastebin.com/KFhEGcge aber nichts in der Datei ändern. – kowal666

+0

Es funktioniert für mich, mit dem HTML, das Sie zur Verfügung gestellt haben (alle "img" -Tags durch "source" ersetzt). Haben Sie versucht, es zu drucken? –

+0

Wie auch immer, ich aktualisierte den Code ein wenig, falls 'img' ist Großbuchstabe –

0

Ihre aktualisierte Inhalte können mit print(soup.prettify("utf-8"))
So gedruckt werden, wenn Sie es in index.html Datei setzen müssen, um wieder, es gerade dort schreiben:

updated_html = soup.prettify("utf-8") 
with open('index.html', 'wb') as file: 
    file.write(updated_html)