即XML路徑語言(XML Path Language),是一種用來肯定XML文檔中某部分位置的語言,它基於XML的樹狀結構,提供在數據結構樹中尋找節點的能力,也適用於HTML文檔中;html
Chrome 在Chrome的應用商店搜索XPath Helper,而後安裝這個插件便可; node
Firefox 一樣的方式,在應用中心查找XPath Checker,而後安裝這個插件便可,因爲未使用Firefox,便再也不演示;python
| 表達式 | 描述 | 示例 | |--|--|--| | nodename|選詞當前節點下節點的全部子節點 | div | | / | 若在最前,則表示從根節點開始選取,不然選擇某節點下的某個節點 | /div | | // | 從全局節點中選取某一節點所在全部位置 | //div | | @ | 選取某一節點屬性 | //div[@color] |shell
路徑表達式 | 描述 |
---|---|
/markstore/mark[1] | 選取markstore下第一個元素 |
/markstore/mark[last()] | 選取markstore下倒數第二個mark元素 |
markstore/mark[position()<5] | 選取markstore下前四個子元素 |
//mark[@id] | 選取擁有id的mark元素 |
//mark[@id=‘k’] | 選取id屬性爲k的mark元素 |
通配符 | 描述 |
---|---|
* | 匹配任意節點 |
@* | 匹配節點中的任意屬性 |
使用以下命令安裝便可,數據結構
pip install lxml
from lxml import etree text = ''' <div> <ul> <li class="id-1"><a href="www.baidu.com">baidu</a></li> <li class="id-2"><a href="www.google.com">Google</a></li> </ul> </div> ''' # 解析字符串爲html文檔 html = etree.HTML(text) # 字符串序列化爲html文檔 result = etree.tostring(html, encoding='utf-8') print(result.decode('utf-8')) # 從文件讀取 parser = etree.HTMLParser(encoding='utf-8') html = etree.parse('csdn.html', parser=parser) # 獲取全部a標籤的href屬性 aList = html.xpath('//a/@href') for a in aList: print(a)
本文主要介紹了爬蟲中數據解析時所須要的用的XPath和lxml庫,介紹了它們的安裝方式和簡單的使用方式,若是你有更好的建議和想法,歡迎留言指正。工具