我有下面的脚本,该脚本可以修改hrefHTML文件中的属性(将来,它将是目录中HTML文件的列表)。使用BeautifulSoup,我设法访问了标签值并根据需要对其进行了修改,但是我不知道如何保存对文件所做的更改。
href
import os import re from bs4 import BeautifulSoup htmlDoc = open('adding_computer_c.html',"r+") soup = BeautifulSoup(htmlDoc) replacements= [ ('_', '-'), ('../tasks/', prefixUrl), ('../concepts/', prefixUrl) ] for link in soup.findAll('a', attrs={'href': re.compile("../")}): newlink=str(link) for k, v in replacements: newlink = newlink.replace(k, v) extrachars=newlink[newlink.find("."):newlink.find(">")] newlink=newlink.replace(extrachars,'') link=newlink print(link) ##How do I save the link I have modified back to the HTML file? print(soup)##prints the original html tree htmlDoc.close()
newlink = link['href'] # .. make replacements link['href'] = newlink # store it back
现在print(soup.prettify())将显示更改的链接。要将更改保存到文件:
print(soup.prettify())
htmlDoc.close() html = soup.prettify("utf-8") with open("output.html", "wb") as file: file.write(html)
要保留文档的原始字符编码,可以使用soup.original_encoding“ utf-8”代替。请参阅编码。
soup.original_encoding