当前位置: 首页 > 面试题库 >

如何使用Python中的BeautifulSoup保存对HTML文件所做的更改?

冯招
2023-03-14
问题内容

我有下面的脚本,该脚本可以修改hrefHTML文件中的属性(将来,它将是目录中HTML文件的列表)。使用BeautifulSoup,我设法访问了标签值并根据需要对其进行了修改,但是我不知道如何保存对文件所做的更改。

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())将显示更改的链接。要将更改保存到文件:

htmlDoc.close()

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

要保留文档的原始字符编码,可以使用soup.original_encoding
utf-8”代替。请参阅编码。



 类似资料:
  • 问题内容: 这就是我知道如何编写和保存它 但是,如果我想编写一个很长的代码,该如何保存到文件中: 问题答案: 您可以通过将多行字符串括在三引号中来创建多行字符串。因此,您可以将HTML存储在字符串中,然后将该字符串传递给:

  • 我有一个powershell脚本,我用这种方式保存日志 在Python中如何使用它?

  • 所附图像是由AWS rekognition得到的一个简单的目标检测结果。我想知道是否有人可以帮助如何将响应保存到文件(CSV或TEXT或JSON)。 代码与响应

  • 我有一堆Java豆物体。 一个目标有:一个

  • 问题内容: 我正在使用Python 2.7 + BeautifulSoup 4.3.2。 我正在尝试使用Python和BeautifulSoup在网页上获取信息。因为该网页位于公司网站中,并且需要登录和重定向,所以我将目标页面的源代码页面复制到一个文件中,并将其另存为C:\中的“ example.html”,以方便练习。 这是原始代码的一部分: 到目前为止,我得出的代码是: 这只是测试的第一步,因

  • 我是python新手,我正在尝试读取文本文件并从文本中收集一些信息。例如,如果文本包含“1.Andrew是XYZ大学的学生,毕业于2020年。”对于上述文本,我要求我的答案是“学生1:Andrew,毕业年份:2020,大学:XYZ”。同样,我需要验证n个学生,并存储n个学生的结果。我只知道这里的基本知识,在这里我可以以不同的格式打开文件,如读、写。。。因此,我对如何进行下一步感到困惑。 任何帮助都