欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

爬蟲(chóng)網(wǎng)頁(yè)內(nèi)容提取神器之xpath是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

10余年的興安盟網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整興安盟建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“興安盟網(wǎng)站設(shè)計(jì)”,“興安盟網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

這篇文章將為大家詳細(xì)講解有關(guān)爬蟲(chóng)網(wǎng)頁(yè)內(nèi)容提取神器之xpath是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

XPath 是什么?

XPath的全稱是 XML Path Language,即XML 路徑語(yǔ)言,是一種在XML(HTML)文檔中查找信息的語(yǔ)言。它有4點(diǎn)特性:

XPath 使用路徑表達(dá)式在 XML 文檔中進(jìn)行導(dǎo)航

XPath 包含一個(gè)標(biāo)準(zhǔn)函數(shù)庫(kù)

XPath 是 XSLT 中的主要元素

XPath 是一個(gè) W3C 標(biāo)準(zhǔn)我們從網(wǎng)頁(yè)中提取數(shù)據(jù),主要應(yīng)用前兩點(diǎn)。

XPath 路徑表達(dá)式

使用XPath我們可以很容易定位到網(wǎng)頁(yè)中的節(jié)點(diǎn),也就是找到我們關(guān)心的數(shù)據(jù)。這些路徑跟電腦目錄、網(wǎng)址的路徑很相似,通過(guò)/來(lái)表示路徑的深度。

XPath 標(biāo)注函數(shù)庫(kù)

頭內(nèi)建了100多個(gè)函數(shù),當(dāng)然我們提取數(shù)據(jù)用到的有限,也就不用記住全部100多個(gè)函數(shù)了。

Xpath 的節(jié)點(diǎn)(Node)

XPath中的核心就是節(jié)點(diǎn)(Node),定義了7種不同類型的節(jié)點(diǎn): 元素(Element)、屬性(Attribute)、文本(Text)、命名空間(Namespace)、處理指令(processing-instruction)、注釋(Comment)和文檔節(jié)點(diǎn)(Document nodes)

這些節(jié)點(diǎn)組成一棵節(jié)點(diǎn)樹(shù),樹(shù)的根節(jié)點(diǎn)被稱為文檔節(jié)點(diǎn)。

其中注釋就是html里面的注釋:<!-- 注釋內(nèi)容 -->

而命名空間、處理指令和網(wǎng)頁(yè)數(shù)據(jù)提取基本沒(méi)關(guān)系,這里就不再詳述。

下面我們以一個(gè)簡(jiǎn)單的html文檔為例,來(lái)解釋不同的節(jié)點(diǎn)及其關(guān)系。

<html>
<body>
    <div>ABC</div>
    <ul id="menu">
        <li>home</li>
        <li>python</li>
    </ul>
</body>
</html>

這段html中的節(jié)點(diǎn)有:

文檔節(jié)點(diǎn): <html>

元素節(jié)點(diǎn):<li class="item">python</li>

屬性節(jié)點(diǎn): id="menu"

XPath 節(jié)點(diǎn)的關(guān)系

節(jié)點(diǎn)間的關(guān)系完全照搬人類傳宗接代的輩分關(guān)系,但只是直系關(guān)系,沒(méi)有叔叔、大伯之類的旁系關(guān)系。

還是以上面的html文檔為例來(lái)說(shuō)明節(jié)點(diǎn)關(guān)系:

父(Parent)

每個(gè)元素節(jié)點(diǎn)(Element)及其屬性都有一個(gè)父節(jié)點(diǎn)。

比如,body的父是html,而body是div、ul 的父親。

子(Children)

每個(gè)元素節(jié)點(diǎn)可以有零個(gè)、一個(gè)或多個(gè)子。

比如,body有兩個(gè)子:div,ul,而ul也有兩個(gè)子:兩個(gè)li。

同輩(Sibling)

同輩有相同的父輩節(jié)點(diǎn)。

比如,div和ul是同輩。

先輩(Ancestor)

某節(jié)點(diǎn)的父輩及其以上輩分的節(jié)點(diǎn)。

比如,li的父輩有:ul、div、body、html

后代(Descendant)

某節(jié)點(diǎn)的子及其子孫節(jié)點(diǎn)。

比如,body的后代有:div、ul、li。

XPath節(jié)點(diǎn)的選取

選取節(jié)點(diǎn),也就是通過(guò)路徑表達(dá)來(lái)實(shí)現(xiàn)。這是我們?cè)诰W(wǎng)頁(yè)提取數(shù)據(jù)時(shí)的關(guān)鍵,要熟練掌握。

下表是比較有用的路徑表達(dá)式:

表達(dá)式說(shuō)明
nodename選取當(dāng)前節(jié)點(diǎn)的名為nodename的所有子節(jié)點(diǎn)。
/從根節(jié)點(diǎn)選取,在路徑中間時(shí)表示一級(jí)路徑
//從當(dāng)前節(jié)點(diǎn)開(kāi)始選擇文檔中的節(jié)點(diǎn),可以是多級(jí)路徑
.從當(dāng)前節(jié)點(diǎn)開(kāi)始選取
..從父節(jié)點(diǎn)開(kāi)始選取
@按屬性選取

接下來(lái)通過(guò)具體的示例來(lái)加深對(duì)路徑表達(dá)的理解:

路徑表達(dá)式解釋
/html/body/ul/li從根節(jié)點(diǎn)開(kāi)始依照路徑選取li元素。返回多個(gè)。
//ul/li[1]還是選取li元素,但是路徑多級(jí)跳躍到ul/li。[1]表示只取第一個(gè)li。
//li[last()]還是選取li,但路徑更跳躍。[last()]表示取最后一個(gè)li元素。
//li[@class]選取根節(jié)點(diǎn)的名為li且有class屬性的所有后代。
//li[@class=”item”]選擇根節(jié)點(diǎn)的名為li且class屬性為item的所有后代。
//body/*/li選取body的名為li的孫子節(jié)點(diǎn)。*是通配符,表示任何節(jié)點(diǎn)。
//li[@*]選取所有帶屬性的li元素。
//body/div | //body/ul選取body的所有div和ul元素。
body/div相對(duì)路徑,選取當(dāng)前節(jié)點(diǎn)的body元素的子元素div。絕對(duì)路徑以 / 開(kāi)始。

XPath函數(shù)

Xpath的函數(shù)很多,涉及到錯(cuò)誤、數(shù)值、字符串、時(shí)間等等,然而我們從網(wǎng)頁(yè)中提取數(shù)據(jù)的時(shí)候只會(huì)用到很少的一部分。其中最重要的就是字符串相關(guān)的函數(shù),比如contains()函數(shù)。

contains(a, b)

如果字符串a(chǎn)包含字符串b,則返回true,否則返回false。

比如: contains(‘猿人學(xué)Python’, ‘Python’),返回true

那么它用在什么時(shí)候呢?我們知道,一個(gè)html標(biāo)簽的class是可以有多個(gè)屬性值的,比如:

<div class="post-item text-red text-center">
    ...
</div>

這段html中div有三個(gè)class值,第一個(gè)表面它是一條發(fā)布的消息,后面兩個(gè)是對(duì)格式做了更多的設(shè)置。如果我們想提取網(wǎng)頁(yè)中所有發(fā)布的消息,只需要匹配到post-item 即可,這時(shí)候就可以用上contains了:

doc.xpath('//div[contains(@class, "post-item")]')

跟contains()類似的字符串匹配的函數(shù)還有:

starts-with(string1, string2) 判斷string1是否以string2開(kāi)頭ends-with(string1, string2) 判斷string1是否以string2結(jié)尾matches(string, pattern) 通過(guò)正則表達(dá)式匹配

然而,在lxml的xpath中使用ends-with(), matches() 會(huì)報(bào)錯(cuò)

In [232]: doc.xpath('//ul[ends-with(@id, "u")]')
---------------------------------------------------------------------------
XPathEvalError                            Traceback (most recent call last)
<ipython-input-232-79a4afc46a75> in <module>()
----> 1 doc.xpath('//ul[ends-with(@id, "u")]')

src/lxml/etree.pyx in lxml.etree._Element.xpath()

src/lxml/xpath.pxi in lxml.etree.XPathElementEvaluator.__call__()

src/lxml/xpath.pxi in lxml.etree._XPathEvaluatorBase._handle_result()

XPathEvalError: Unregistered function

lxml 竟然不支持ends-with(), matches()函數(shù)
到lxml官方網(wǎng)站去看看,原來(lái)它說(shuō)了只支持 XPath 1.0:

lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through libxml2 and libxslt in a standards compliant way.

關(guān)于爬蟲(chóng)網(wǎng)頁(yè)內(nèi)容提取神器之xpath是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

名稱欄目:爬蟲(chóng)網(wǎng)頁(yè)內(nèi)容提取神器之xpath是什么-創(chuàng)新互聯(lián)
新聞來(lái)源:http://aaarwkj.com/article32/dspgsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、ChatGPT、App開(kāi)發(fā)、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
国产口爆一区二区三区| 久久91亚洲精品中文字幕| 欧美日韩国产免费,日日骚| 色婷婷国产精品高潮呻吟| 日本黄色中文字幕在线观看| 国产三级一区二区不卡| 国产一区二区在线不卡播放| 亚洲最色最黄大片在线视频| 日韩欧美中文字幕一区二区| 乱码日本欧美一区二区| 国产专区亚洲精品欧美| 青草视频在线播放免费| 东京热一精品无码av| 亚洲天堂一区二区av| 国产精品日本在线观看| 91免费看片在线观看| 久久久国产精品免费看| 久久亚洲国产成人精品性色| 丁香六月色婷婷亚洲激情| 欧美亚洲国产日韩在线高清| 日韩不卡在线免费观看视频| 日韩不卡区免费在线观看| 国产真实精品对白又爽欧美| 亚洲一区二区在线视频在线观看 | 亚洲国产男同日韩小鲜肉| 日本加勒比系列在线视频| 成人黄色av免费看| 国产精品午夜福利91| 99久热在线精品视频| 欧美 成人一区二区三区| 日韩欧美精品在线不卡| 欧美成人一区二区三区片| av高清不卡一区二区免费在线| 18岁以下禁看视频网站| 国产在线一区二区三区蜜桃| 好吊精品视频在线观看| 美女丝袜美腿魅惑男人| 婷婷丁香久久五月婷婷| 日本亚洲美丽少妇天堂| 亚洲男人天堂av电影| 欧美日韩国产精品综合|