lxml 是 乙個html/xml的解析器,主要的功能是如何解析和提取 html/xml 資料。
lxml和正則一樣,也是用 c 實現的,是一款高效能的 python html/xml 解析器,我們可以利用之前學習的xpath語法,來快速的定位特定元素以及節點資訊。
需要安裝c語言庫,可使用 pip 安裝:pip install lxml
基本使用:
我們可以利用他來解析html**,並且在解析html**的時候,如果html**不規範,他會自動的進行補全。示例**如下:# 使用 lxml 的 etree 庫
from lxml import etree
text = '''
'''#利用etree.html,將字串解析為html文件
html = etree.html(text)
# 按字串序列化html文件
result = etree.tostring(html)
print(result)
輸入結果如下:
可以看到。lxml會自動修改html**。例子中不僅補全了li標籤,還新增了body,html標籤。
從檔案中讀取html**:
除了直接使用字串進行解析,lxml還支援從檔案中讀取內容。我們新建乙個hello.html檔案:
然後利用etree.parse()方法來讀取檔案。示例**如下:from lxml import etree# 讀取外部檔案 hello.htmlhtml = etree.parse('hello.html')
result = etree.tostring(html, pretty_print=true)
print(result)
總結:解析html字串:使用lxml.etree.html進行解析。示例**如下:htmlelement = etree.html(text)
print(etree.tostring(htmlelement,encoding='utf-8').decode("utf-8"))
解析html檔案:使用lxml.etree.parse進行解析。示例**如下:htmlelement = etree.parse("tencent.html")
print(etree.tostring(htmlelement, encoding='utf-8').decode('utf-8'))
這個函式預設使用的是xml解析器,所以如果碰到一些不規範的html**的時候就會解析錯誤,這時候就要自己建立html解析器。parser = etree.htmlparser(encoding='utf-8')
htmlelement = etree.parse("lagou.html",parser=parser)
print(etree.tostring(htmlelement, encoding='utf-8').decode('utf-8'))
python的lxml庫簡介 爬蟲三大庫簡介
爬蟲三大庫簡介 requests庫 requests 讓 http 服務人類。requests庫的作用就是請求 獲取網頁資料。簡單的使用示例 部分結果如下圖 開啟瀏覽器,進入在空白處右鍵,在如下所示的彈出選單中,選擇 檢視網頁原始碼 選項。我們在新彈出的頁面中看到,先前 print res.text...
Python 之lxml解析庫
一 xpath常用規則 二 解析html檔案 from lxml import etree 讀取html檔案進行解析 defparse html file html etree.parse test.html parser etree.htmlparser print etree.tostring ...
python常見庫的安裝(填lxml庫安裝的坑)
lxml庫 如果使用 pip3 install lxml windows系統安裝時10個最少8個會出錯,因為lxml庫是c語言實現的,即使安裝了visual c 2015,還是會有新的錯誤出現。pipinstall lxml 3 6.0 cp35 cp35m win32 whl 如果是直接用cmd命...