中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python爬蟲中Xpath語法怎么用

發布時間:2022-01-28 13:52:26 來源:億速云 閱讀:287 作者:iii 欄目:開發技術

這篇“Python爬蟲中Xpath語法怎么用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python爬蟲中Xpath語法怎么用”文章吧。

什么是 Xpath?

       XPath 即為 XML 路徑語言,它是一種用來確定 XML (標準通用標記語言子集)文檔中某部分位置的語言。XPath 基于 XML 的樹狀結構,提供在數據結構樹中找尋節點的能力。起初 XPath 的提出的初衷是將其作為一個通用的、介于 XPointer 與 XSL 間的語法模型。但是  XPath 很快的被開發者采用來當作小型查詢語言。

       簡單的來說:Xpath(XML Path Language)是一門在 XML 和 HTML 文檔中查找信息的語言,可用來在 XML 和 HTML 文檔中對元素和屬性進行遍歷。

XPath 開發工具

       這里給大家介紹兩個小編用得較多也是用得最為廣泛與便捷的工具:

  • Chrome 插件 XPath Helper (需科學上網);

  • Firefox 插件 Try XPath。

       當然 Chrome 插件 XPath Helper 也可以尋找安裝包后通過插件伴侶安裝,安裝方法步驟如下:

  1.  打開插件伴侶,選擇下載好的插件;

  2. 選擇提取插件內容到桌面,桌面上會多一個文件夾;

  3. 把文件夾放入想要放的路徑下;

  4. 打開谷歌瀏覽器,選擇擴展程序,開發者模式打開,選擇加載已解壓的擴展程序,選擇路徑打開即可。

XPath 節點

       在 XPath 中,有七種類型的節點:元素、屬性、文本、命名空間、處理指令、注釋以及文檔(根)節點。XML 文檔是被作為節點樹來對待的。樹的根被稱為文檔節點或者根節點。

XPath 語法

       XPath 使用路徑表達式來選取 XML 文檔中的節點或節點集。節點是通過沿著路徑 (path) 或者步 (steps) 來選取的。

       使用方式:

       使用 // 獲取整個頁面當中的元素,然后寫標簽名,然后在寫謂語進行提取,比如:

//title[@lang='en']

       需要注意的知識點:

  •  / 和 // 的區別:/ 代表只獲取子節點,// 獲取子孫節點,一般 // 用的比較多,當然也要視情況而定;

  • contains:有時候某個屬性中包含了多個值,那么可以使用 contains 函數,示例如下:

//title[contains(@lang,'en')]

  • 謂詞中下標是從 1 開始的,不是從 0 開始的

lxml 庫

       lxml 是 一個HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 數據。

       該庫為第三方庫需使用 pip 進行安裝,命令如下:

pip install lxml

 基本使用:

       如下是案例實操的 html 文件代碼,屏幕前的小伙伴可以保存下來一起動手練習。

<div>

    <ul>

         <li class="im-0"><a href="link1.html"> first </a></li>

         <li class="im-1"><a href="link2.html"> second </a></li>

         <li class="im-active"><a href="link3.html"> third </a></li>

         <li class="im-1"><a href="link4.html"> fourth </a></li>

         <li class="im-0"><a href="link5.html"> fifth </a>

     </ul>

 </div>

案例 1:將字符串解析為 html 文檔

from lxml import etree

text = ''

html = etree.HTML(text) #讀取

print(html)

# 按字符串序列化html

result = etree.tostring(html).decode('utf-8')

print(result)

案例 2:從文件中讀取 html 代碼:

from lxml import etree

html = etree.parse('hello.html') #讀取

# 按字符串序列化html

result = etree.tostring(html).decode('utf-8')

print(result)

案例 3:在 lxml 中使用 Xpath 語法

from lxml import etree

html = etree.parse('hello.html')

# 獲取所有 li 標簽:

# result = html.xpath('//li')

# print(result)

# for i in result:

#     print(etree.tostring(i))

# 獲取所有li元素下的所有 class 屬性的值:

# result = html.xpath('//li/@class')

# print(result)

# 獲取 li 標簽下 href 為http://www.5655pk.com/的 a 標簽:

# result = html.xpath('//li/a[@href="http://www.5655pk.com/"]')

# print(result)

# 獲取 li 標簽下所有 span 標簽:

# result = html.xpath('//li//span')

# print(result)

# 獲取 li 標簽下的 a 標簽里的所有 class:

# result = html.xpath('//li/a//@class')

# print(result)

# 獲取最后一個 li 的 a 的 href 屬性對應的值:

# result = html.xpath('//li[last()]/a/@href')

# print(result)

# 獲取倒數第二個 li 元素的內容:

# result = html.xpath('//li[last()-1]/a')

# print(result)

# print(result[0].text)

# 獲取倒數第二個 li 元素的內容的第二種方式:

result = html.xpath('//li[last()-1]/a/text()')

print(result)

以上就是關于“Python爬蟲中Xpath語法怎么用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁津县| 临泽县| 大渡口区| 武清区| 丰台区| 塘沽区| 柳林县| 永宁县| 三原县| 泸溪县| 惠安县| 镇宁| 安仁县| 裕民县| 桃江县| 涿鹿县| 北流市| 新河县| 霍邱县| 于田县| 榆社县| 方城县| 丹巴县| 安溪县| 夏邑县| 阳新县| 岳阳市| 滨州市| 博罗县| 安义县| 乌兰浩特市| 鸡东县| 上虞市| 新竹市| 大悟县| 巴彦淖尔市| 曲沃县| 普宁市| 东辽县| 湘乡市| 西安市|