如何使用python在h1标签之后在现有的html文件中添加新的div标签

时间:2013-11-05 12:41:35

标签: python python-2.7 html-parser

我有一个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标签

2 个答案:

答案 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}}