這篇文章主要為大家分析了如何使用Xpath工具與 lxml 庫的相關(guān)知識點,內(nèi)容詳細(xì)易懂,操作細(xì)節(jié)合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學(xué)習(xí)“如何使用Xpath工具與 lxml 庫”的知識吧。
成都創(chuàng)新互聯(lián)公司是專業(yè)的滄縣網(wǎng)站建設(shè)公司,滄縣接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行滄縣網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
小編介紹的是內(nèi)容提取的工具 —— Xpath,它一般和 lxml 庫搭配使用。
Xpath
XPath即為XML路徑語言,它是一種用來確定XML(標(biāo)準(zhǔn)通用標(biāo)記語言的子集)文檔中某部分位置的語言。XPath 基于 XML 的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點的能力。
Xpath 原本是用于選取 XML 文檔節(jié)點信息。XPath 是于 1999 年 11 月 16 日 成為 W3C 標(biāo)準(zhǔn)。因其既簡單方便又容易,所以它逐漸被人說熟知。
lxml
lxml 是功能豐富又簡單易用的,專門處理 XML 和 HTML 的 Python 官網(wǎng)標(biāo)準(zhǔn)庫。
正則表達(dá)式的枯燥無味又學(xué)習(xí)成本高,Xpath 可以說是不及其萬分之一。所以只要花上 10 分鐘,掌握 Xpath 不在話下。Xpath 的語言以及如何從 HTML dom 樹中提取信息,我將其歸納為“主干 - 樹支 - 綠葉”。
抓取信息,我們需知道要從哪里開始抓取。因此,需要找個起始節(jié)點。Xpath 選擇起始節(jié)點有以下可選:
我們通過以下實例來了解其用法:
如果你對于提取節(jié)點沒有頭緒的時候,可以使用通配符來暫時替代。等查看輸出內(nèi)容之后再進(jìn)一步確認(rèn)。
這一步的過程其實是通過起點一步步來尋找最終包含我們所需內(nèi)容的節(jié)點。我們有時需要使用到相鄰節(jié)點信息。因此,我們需要了解關(guān)系節(jié)點或者謂語。
關(guān)系節(jié)點
一般而言,DOM 樹中一個普通節(jié)點具有父節(jié)點、兄弟節(jié)點、子節(jié)點。當(dāng)然也有例外的情況。這些有些節(jié)點比較特殊,可能沒有父節(jié)點,如根節(jié)點;也有可能是沒有子節(jié)點,如深度最大的節(jié)點。Xpath 也是有支持獲取關(guān)系節(jié)點的語法。
謂語
謂語用來查找某個特定的節(jié)點或者包含某個指定的值的節(jié)點。同時,它是被嵌在方括號中的。
到了這一步,我們已經(jīng)找到所需內(nèi)容的節(jié)點了。接下來就是獲取該節(jié)點中的內(nèi)容了。Xpath 語法提供了提供節(jié)點的文本內(nèi)容以及屬性內(nèi)容的功能。
具體用法見以下實例:
pip 是安裝庫文件的最簡便的方法,具體命令如下:
lxml 使用起來是比較簡單的。我們首先要使用 lxml 的 etree 將 html 頁面進(jìn)行初始化,然后丟給 Xpath 匹配即可。具體用法如下:
沒錯,就這短短幾行代碼即可完成信息提取。
值得注意的是:xpath 查找匹配返回的類型有可能是一個值,也有可能是一個存放多個值的列表。這個取決于你的路徑表達(dá)式是如何編寫的。
關(guān)于“如何使用Xpath工具與 lxml 庫”就介紹到這了,更多相關(guān)內(nèi)容可以搜索創(chuàng)新互聯(lián)以前的文章,希望能夠幫助大家答疑解惑,請多多支持創(chuàng)新互聯(lián)網(wǎng)站!
文章題目:如何使用Xpath工具與lxml庫
分享網(wǎng)址:http://jinyejixie.com/article32/ghdosc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、虛擬主機、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、微信公眾號、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)