要修改的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>
.