国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python3解析庫lxml的安裝與基本使用

2020-02-15 22:02:57
字體:
來源:轉載
供稿:網友

前言

在爬蟲的學習中,我們爬取網頁信息之后就是對信息項匹配,這個時候一般是使用正則。但是在使用中發現正則寫的不好的時候不能精確匹配(這其實是自己的問題!)所以就找啊找。想到了可以通過標簽來進行精確匹配豈不是比正則要快。所以找到了lxml。

lxml是python的一個解析庫,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高

XPath,全稱XML Path Language,即XML路徑語言,它是一門在XML文檔中查找信息的語言,它最初是用來搜尋XML文檔的,但是它同樣適用于HTML文檔的搜索

XPath的選擇功能十分強大,它提供了非常簡明的路徑選擇表達式,另外,它還提供了超過100個內建函數,用于字符串、數值、時間的匹配以及節點、序列的處理等,幾乎所有我們想要定位的節點,都可以用XPath來選擇

XPath于1999年11月16日成為W3C標準,它被設計為供XSLT、XPointer以及其他XML解析軟件使用,更多的文檔可以訪問其官方網站:https://www.w3.org/TR/xpath/

1、python庫lxml的安裝

windows系統下的安裝:

#pip安裝pip3 install lxml#wheel安裝#下載對應系統版本的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxmlpip3 install lxml-4.2.1-cp36-cp36m-win_amd64.whl

linux下安裝:

yum install -y epel-release libxslt-devel libxml2-devel openssl-develpip3 install lxml

驗證安裝:

$python3>>>import lxml

2、XPath常用規則

表達式 描述
nodename 選取此節點的所有子節點
/ 從當前節點選取直接子節點
// 從當前節點選取子孫節點
. 選取當前節點
.. 選取當前節點的父節點
@ 選取屬性
* 通配符,選擇所有元素節點與元素名
@* 選取所有屬性
[@attrib] 選取具有給定屬性的所有元素
[@attrib='value'] 選取給定屬性具有給定值的所有元素
[tag] 選取所有具有指定元素的直接子節點
[tag='text'] 選取所有具有指定元素并且文本內容是text節點

(1)讀取文本解析節點

from lxml import etreetext='''<div> <ul> <li class="item-0"><a href="link1.html">第一個</a></li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-0"><a href="link5.html">a屬性</a> </ul> </div>'''html=etree.HTML(text) #初始化生成一個XPath解析對象result=etree.tostring(html,encoding='utf-8') #解析對象輸出代碼print(type(html))print(type(result))print(result.decode('utf-8'))#etree會修復HTML文本節點<class 'lxml.etree._Element'><class 'bytes'><html><body><div> <ul> <li class="item-0"><a href="link1.html">第一個</a></li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-0"><a href="link5.html">a屬性</a> </li></ul> </div></body></html>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黑河市| 桦南县| 静安区| 鄯善县| 岳池县| 凤城市| 罗源县| 冷水江市| 中阳县| 绥宁县| 息烽县| 五河县| 彩票| 修文县| 巴南区| 南陵县| 桐乡市| 建始县| 宣汉县| 尼木县| 叙永县| 余江县| 冷水江市| 台前县| 石城县| 道孚县| 深圳市| 绥宁县| 六安市| 西盟| 长汀县| 西宁市| 原阳县| 凭祥市| 和政县| 淮阳县| 花莲市| 阿坝| 长治市| 沙雅县| 乡城县|