要修改的index.html文件:
<head>
<link href=“https://www.highcharts.com/highslide/highslide.css” rel=“stylesheet” />
<script type=“text/javascript” src=“https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js”>
<script type=“text/javascript” src=“http://code.highcharts.com/modules/drilldown.js”>
</head>
代码和详细注释:
在pycharm中的代码如下
# 如何修改html的标签属性值,把正则流打的落花流水三千里
from bs4 import BeautifulSoup
with open("index.html","r",encoding="utf-8") as file:
fcontent=file.read()
sp=BeautifulSoup(fcontent, 'lxml')
label_single = sp.link #获得标签link , 类型为<class 'bs4.element.Tag'>
label_1['href'] = "./highslide.css" #利用字典,把href的内容改成当前路径下的css
#接下来要修改标签script内的src值,但是我们发现sp.tag, 只能够得到第一个对应的标签,
#而我这里有2个或者多个script标签,于是上面的代码方式就不适用了!
#那如何遍历赋值呢?请往下看
# 修改script标签
src_list = ["./jquery.min.js", "./drilldown.js" ]
# 把所有的script标签找出来。注意findAll中的A要大写!
label_list = sp.findAll('script')
# 然后遍历这个标签列表,将src属性值依次修改
i = 0
for label in label_list:
label["src"] = src_list[i] # src_list[i]类型也是<class 'bs4.element.Tag'>
i +=1
#最后将其写入
with open('index.html', 'w') as fp:
fp.write(sp.prettify()) # prettify()的作用是将sp美化一下,有可读性
最后生成的index.html,其中我们修改的标签属性值如下:
<script src=”./jquery.min.js” type=”text/javascript”></script>
<script script src=”./drilldown.js” type=”text/javascript”></script>
.