Python個人學習筆記 XPath語法與lxml.etree模塊
lxml.etree
????解析HTML代碼
XPath
????常用語法
????常用用法示例
????運算符

解析HTML代碼
⑴ 解析本地文件 parse()
⑵ 解析字符串HTML代碼 HTML()
其實用response.html可以直接獲取非字符串類型的HTML代碼,沒必要再用etree.HTML()解析一遍。
區(qū)別就是匹配節(jié)點后輸出的方式不同。response.html會顯示標簽中屬性和屬性值,etree.HTML()解析的代碼只顯示標簽名。

XPath
XPath可用于爬蟲中匹配標簽對。
常用語法
示例可參考 requests庫 requests_html庫——簡單數(shù)據(jù)爬取。
常用用法示例
⑴ 獲取所有節(jié)點 //*
⑵ 獲取父節(jié)點 ..
多個節(jié)點的父節(jié)點相同時,不會重復返回父節(jié)點。
獲取<body>下<div>標簽的父節(jié)點。一共會匹配到5個<div>,只會返回1個<body>。

⑶ 獲取文本 /text()????/????獲取屬性值 @
① 獲取所有<td class="..." colspan="..." style="...">下<a>的文本。

②?獲取所有<td class="..." colspan="..." style="...">下<a>的title的屬性值。
⑷ 模糊匹配文本 contains()

① 匹配屬性值
② 匹配文本
⑸ 指定索引
在之前的例子中獲取東方作品名中,一共有4個表格:舊作、整數(shù)作、小數(shù)點作、黃昏作。
用索引 [2] 指定第二個表格(新作),再獲取作品名。
last():返回最后一個索引值。
position():返回當前索引值。
用?[last()-2]、[position()=2] 同樣可以獲取第二個表格。
▲索引從1開始。
⑹ 指定軸(節(jié)點關系) ::
示例參考?requests庫 requests_html庫——簡單數(shù)據(jù)爬取。
運算符
示例:
獲取<head>和<table>標簽。

