今天,在爬取數據後,提取時,遇到了無法直接通過標籤獲取數據。
<ul class="key clearfix">
<li>開 本:16開</li>
<li>紙 張:膠版紙</li>
<li>包 裝:平裝-膠訂</li>
<li>是否套裝:否</li>
<li>國際標準書號ISBN:9787115422699</li>
</ul>
比如說,我想要提取開本的規格“16開”。
解決方案:
後面,查詢資料的時候發現通過正則表達式子,可以鎖定提取的前後部分。具體操作如下:
import re
# 要提取的原材料
a = """<ul class="key clearfix">
<li>開 本:16開</li>
<li>紙 張:膠版紙</li>
<li>包 裝:平裝-膠訂</li>
<li>是否套裝:否</li>
<li>國際標準書號ISBN:9787115422699</li>
</ul>"""
# 想提取的內容假設爲"16開",分析它前爲本:,後爲</li>;.在正則中表示可代表一切字符,+代表匹配前面字符 >=0 次,即規定前後裏面的內容
formats = re.findall(r"本:(.+)</li>", a)
print(formats) # 輸出爲['16開']
# 由於輸出是數組,所以再次提出
format = formats[0]
print(format) # 輸出爲16開