如何替换文件中html标签的文本内容并将其保存到另一个(某些)文件?
实施例。有一个文件index.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p itemprop="someprop">SOME BIG TEXT</p>
</body>
</html>
我需要更换文字&#34; SOME BIG TEXT&#34;在&#34; p&#34;标记为&#34;另一个大文本&#34;
from bs4 import BeautifulSoup
with open("index.html","r") as file:
fcontent=file.read()
sp=BeautifulSoup(fcontent,'lxml')
t='new_text_for_replacement'
print(sp.replace(sp.find(itemprop="someprop").text,t))
我做错了什么?
谢谢
答案 0 :(得分:0)
问题取决于您搜索条件的方式,请尝试更改以下代码:
print(sp.replace(sp.find(itemprop="someprop").text,t))
到此:
print(sp.replace(sp.find({"itemprop":"someprop"}).text,t))
希望,这有助于
(PS:根据您的问题而假设您只有一件事需要更换)
答案 1 :(得分:0)
在输出文件上使用open()
写入。
with open('index.html', 'r') as file:
fcontent = file.read()
sp = BeautifulSoup(fcontent, 'html.parser')
t = 'new_text_for_replacement'
# replace the paragraph using `replace_with` method
sp.find(itemprop='someprop').replace_with(t)
# open another file for writing
with open('output.html', 'w') as fp:
# write the current soup content
fp.write(sp.prettify())
如果您只想替换段落的内部内容而不是段落元素本身,则可以设置.string
属性。
sp.find(itemprop='someprop').string = t