我有一个html文件,我想在h1标签后添加一个div标签。 div标签将有一个锚标签。如何使用python编辑现有的html文件并添加带链接的div 这就是我想做的事情
<h1>
</h1>
<div> <a></a>
</div>
我试过BeatifulSoup。得到了AttributeError:'NoneType'对象没有属性'insert_after'这个错误:
htmlFile ='path to html file'
soup = Soup(htmlFile)
headTag = soup.find('h1')
divTag = soup.new_tag('div')
divTag['class'] = "link"
headTag.insert_after(divTag)
请建议修改此代码,在当前的html文件中添加div标签
答案 0 :(得分:4)
解析器失败是因为您没有传递文件的内容,而是传递路径的字符串。因此,您在路径中搜索h1
标记,解析器将找不到它。
htmlFile = open('path to html file').read()
完整代码:
with open("path to html file") as file:
htmlFile = file.read()
soup = Soup(htmlFile)
headTag = soup.find('h1')
divTag = soup.new_tag('div')
divTag['class'] = "link"
headTag.insert_after(divTag)
print(soup) #This should print the new, modified html
答案 1 :(得分:0)
append
标记<a>
和insert_after
<h1>
后添加from bs4 import BeautifulSoup
import sys
soup = BeautifulSoup(open(sys.argv[1], 'r'))
h1 = soup.find('h1')
div = soup.new_tag('div')
a = soup.new_tag('a')
div.append(a)
h1.insert_after(div)
:
{{1}}