最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文掌握Python爬蟲XPath語法

 更新時(shí)間:2021年11月18日 11:29:31   作者:王曦  
這篇文章主要介紹了一文掌握Python爬蟲XPath語法,xpath是一門在XML和HTML文檔中查找信息的語言,可用來在XML和HTML文檔中對(duì)元素和屬性進(jìn)行遍歷,XPath 通過使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集。下面會(huì)更學(xué)習(xí)的介紹,需要的朋友可以參考一下

本文轉(zhuǎn)自微信公眾號(hào):"算法與編程之美"

一、問題描述

1.什么是XPath?

xpath是一門在XMLHTML文檔中查找信息的語言,可用來在XMLHTML文檔中對(duì)元素和屬性進(jìn)行遍歷,XPath 通過使用路徑表達(dá)式來選取 XML 文檔中的節(jié)點(diǎn)或者節(jié)點(diǎn)集。這些路徑表達(dá)式和在常規(guī)的電腦文件系統(tǒng)中看到的表達(dá)式非常相似。

二、解決方案

1.XPath語法

想要學(xué)好xpath,首先要搞明白html文檔中的節(jié)點(diǎn)。

<div>
     <ul>
          <li class="item-0"><a href="link1.html" rel="external nofollow" >first item</a></li>
          <li class="item-1"><a href="link2.html" rel="external nofollow" >second item</a></li>
          <li class="item-inactive"><a href="link3.html" rel="external nofollow" >third item</a></li>
          <li class="item-1"><a href="link4.html" rel="external nofollow" >fourth item</a></li>
          <li class="item-0"><a href="link5.html" rel="external nofollow" >fifth item</a> # 注意,此處缺少一個(gè) </li> 閉合標(biāo)簽
      </ul>
  </div>

以上是在網(wǎng)上隨便找的一段html的文本,可以觀察得到,div的標(biāo)簽下是ul標(biāo)簽,而ul標(biāo)簽下是li標(biāo)簽,于是發(fā)現(xiàn)html的標(biāo)簽是一級(jí)一級(jí)如樹狀的。Xpath正是通過這樣的方式去尋找。以生活中舉例,要確定一個(gè)人的位置,首先確定他在中國,然后確定他在某個(gè)省份,哪座城市,那個(gè)小區(qū),最后找到他。

表達(dá)式

描述

Nodename

選取此節(jié)點(diǎn)的所有子節(jié)點(diǎn) bookstore 選取bookstore下所有的子節(jié)點(diǎn)

/

如果是在最前面,代表從根節(jié)點(diǎn)選取。否則選擇某節(jié)點(diǎn)下的某個(gè)節(jié)點(diǎn) /bookstore 選取根元素下所有的bookstore節(jié)點(diǎn)

//

從全局節(jié)點(diǎn)中選擇節(jié)點(diǎn),隨便在哪個(gè)位置 //book 從全局節(jié)點(diǎn)中找到所有的book節(jié)點(diǎn)

@

選取某個(gè)節(jié)點(diǎn)的屬性 //book[@price] 選擇所有擁有price屬性的book節(jié)點(diǎn)

.

當(dāng)前節(jié)點(diǎn)

Text()

獲取標(biāo)簽中的文本

同級(jí)標(biāo)簽可以用li[1] ,li[2] ,li[3]的方式獲取

2.lxml庫

簡單介紹一下lxml庫,接下來會(huì)用到它

lxml是一個(gè)HTML/XML的解析器,主要的功能是如何解析和提取HTML/XML 數(shù)據(jù)。

lxml和正則一樣,也是用C實(shí)現(xiàn)的,是一款高性能的PythonHTML/XML解析器,可以利用之前學(xué)習(xí)的XPath語法,來快速的定位特定元素以及節(jié)點(diǎn)信息。

3.實(shí)際案例

隨便爬取一個(gè)網(wǎng)站,找到找到網(wǎng)站的html文本

如下圖:

要找到titlehref,仔細(xì)觀察可以得到路徑分別是//div[@id="resultList"]/div[@class="el"]/p/span/a/@title

//div[@id="resultList"]/div[@class="el"]/p/span/a/@href

運(yùn)行如下:

三、結(jié)語

Xpath,是在爬蟲中常見的提取數(shù)據(jù)的方式之一,相比于正則,它更加簡單一些,便于操作,xpath的難點(diǎn)在于準(zhǔn)確的確定數(shù)據(jù)所在的位置。

到此這篇關(guān)于一文掌握Python爬蟲XPath語法的文章就介紹到這了,更多相關(guān)Python爬蟲XPath語法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python編程實(shí)現(xiàn)下載器自動(dòng)爬取采集B站彈幕示例

    Python編程實(shí)現(xiàn)下載器自動(dòng)爬取采集B站彈幕示例

    這篇文章主要介紹了使用Python編程來實(shí)現(xiàn)一個(gè)下載器可以自動(dòng)爬取采集B站彈幕的示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-10-10
  • Python中的shutil模塊詳析

    Python中的shutil模塊詳析

    這篇文章主要介紹了Python中的shutil模塊詳析,Python的Shutil模塊可以看做是OS模塊的補(bǔ)充,它提供了對(duì)文件(夾)復(fù)制,移動(dòng),刪除,壓縮和解壓縮的方法,下面本文會(huì)對(duì)shutil模塊的常用方法進(jìn)行分類介紹,需要的朋友可以參考下
    2023-09-09
  • Python學(xué)習(xí)筆記_數(shù)據(jù)排序方法

    Python學(xué)習(xí)筆記_數(shù)據(jù)排序方法

    Python對(duì)數(shù)據(jù)排序有兩種方法:下面我們來簡單分析下
    2014-05-05
  • Python利用PyQt6開發(fā)一個(gè)全能的任務(wù)管理器

    Python利用PyQt6開發(fā)一個(gè)全能的任務(wù)管理器

    在數(shù)字化辦公時(shí)代,我們每天都要重復(fù)執(zhí)行大量機(jī)械性操作,這些操作不僅浪費(fèi)時(shí)間,還容易因人為疏忽出錯(cuò),所以本文就來使用PyQt6開發(fā)一個(gè)升級(jí)的自動(dòng)化任務(wù)管理器吧
    2025-04-04
  • 基于Python實(shí)現(xiàn)簡單的定時(shí)器詳解

    基于Python實(shí)現(xiàn)簡單的定時(shí)器詳解

    所謂定時(shí)器,是指間隔特定時(shí)間執(zhí)行特定任務(wù)的機(jī)制。幾乎所有的編程語言,都有定時(shí)器的實(shí)現(xiàn)。這篇文章主要介紹的是通過Python實(shí)現(xiàn)的定時(shí)器,感興趣的可以跟隨小編學(xué)習(xí)一下
    2021-12-12
  • 如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)

    如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)

    數(shù)據(jù)可視化用于以更直接的表示方式顯示數(shù)據(jù),并且更易于理解,下面這篇文章主要給大家介紹了關(guān)于如何使用matplotlib讓你的數(shù)據(jù)更加生動(dòng)的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化

    pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化

    這篇文章主要介紹了pyecharts實(shí)現(xiàn)數(shù)據(jù)可視化,pyecharts 是百度開源的,適用于數(shù)據(jù)可視化的工具,配置靈活,展示圖表相對(duì)美觀,順滑,下面更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python爬蟲如何破解JS加密的Cookie

    Python爬蟲如何破解JS加密的Cookie

    這篇文章主要介紹了Python爬蟲如何破解JS加密的Cookie,幫助大家更好的理解和使用爬蟲,感興趣的朋友可以了解下
    2020-11-11
  • 詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用(網(wǎng)站中快速布置廣告)

    詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用(網(wǎng)站中快速布置廣告)

    這篇文章主要介紹了詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用【網(wǎng)站中快速布置廣告】,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Python接口自動(dòng)化淺析如何處理接口依賴

    Python接口自動(dòng)化淺析如何處理接口依賴

    本文主要介紹如何提取token、將token作為類屬性全局調(diào)用及充值接口如何攜帶token進(jìn)行請(qǐng)求,其他接口調(diào)用的前提條件是當(dāng)前用戶必須是登錄狀態(tài),如何處理接口依賴
    2021-08-08

最新評(píng)論

江阴市| 璧山县| 外汇| 双流县| 台湾省| 方山县| 石家庄市| 新泰市| 自治县| 宣武区| 寻甸| 保德县| 会宁县| 垣曲县| 炉霍县| 仲巴县| 安宁市| 佛冈县| 乳山市| 清水河县| 米泉市| 长顺县| 依兰县| 砚山县| 福建省| 邵武市| 汕头市| 嘉定区| 嘉峪关市| 新源县| 清新县| 门源| 石阡县| 古田县| 玛多县| 乐平市| 丽江市| 城市| 新化县| 吉隆县| 额敏县|