** python3 修改html文件中标签的属性值**
:----------因为python3中的highchart模块画图,感觉非常不错,用python的语言翻译javascript。
在实际开发过程中我们几乎或多或少地用到一些经典的js,把这些download到本地来引用,比一直用代理访问服务器方便很多。
于是为了引用down下来后的js,首先得修改html文件内的标签属性值。这里我直接上例子(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中的代码如下
#
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,当然你可以根据自己的路径fill in
#接下来要修改标签script内的src值,但是我们发现sp.tag, 只能够得到第一个对应的标签,而我这里有2个或者多个script标签,
于是上面的代码方式就不适用了!
#那如何遍历赋值呢?请往下看
#modify the script label
src_list = ["./jquery.min.js", "./drilldown.js" ]
label_list = sp.findAll('script')
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())
最后生成的index.html,其中我们目标修改的标签属性值如下。
<script src="./jquery.min.js" type="text/javascript"></script>
<script script src="./drilldown.js" type="text/javascript"></script>
[1]:https://zhidao.baidu.com/question/478895694.html?fr=iks&word=python3+BeautifulSoup%D0%DE%B8%C4%B1%EA%C7%A9%C4%DA%CB%F9%D3%D0src%CA%F4%D0%D4%B5%C4%D6%B5&ie=gbk