欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文掌握Python爬蟲(chóng)XPath語(yǔ)法

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

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

一、問(wèn)題描述

1.什么是XPath?

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

二、解決方案

1.XPath語(yǔ)法

想要學(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í)如樹(shù)狀的。Xpath正是通過(guò)這樣的方式去尋找。以生活中舉例,要確定一個(gè)人的位置,首先確定他在中國(guó),然后確定他在某個(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庫(kù)

簡(jiǎn)單介紹一下lxml庫(kù),接下來(lái)會(huì)用到它

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

lxml和正則一樣,也是用C實(shí)現(xiàn)的,是一款高性能的PythonHTML/XML解析器,可以利用之前學(xué)習(xí)的XPath語(yǔ)法,來(lái)快速的定位特定元素以及節(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é)語(yǔ)

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

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

相關(guān)文章

  • python發(fā)送郵件實(shí)例分享

    python發(fā)送郵件實(shí)例分享

    這篇文章主要為大家詳細(xì)介紹了python發(fā)送郵件實(shí)例分享,教大家如何實(shí)現(xiàn)郵件發(fā)送功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • python連接clickhouse的端口問(wèn)題及解決

    python連接clickhouse的端口問(wèn)題及解決

    這篇文章主要介紹了python連接clickhouse的端口問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python?Paramiko上傳下載sftp文件及遠(yuǎn)程執(zhí)行命令詳解

    Python?Paramiko上傳下載sftp文件及遠(yuǎn)程執(zhí)行命令詳解

    這篇文章主要為大家介紹了Python?Paramiko上傳下載sftp文件及遠(yuǎn)程執(zhí)行命令示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python內(nèi)建函數(shù)之raw_input()與input()代碼解析

    Python內(nèi)建函數(shù)之raw_input()與input()代碼解析

    這篇文章主要介紹了Python內(nèi)建函數(shù)之raw_input()與input()代碼解析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • python Matplotlib模塊的使用

    python Matplotlib模塊的使用

    這篇文章主要介紹了python Matplotlib模塊的使用,幫助大家更好的利用python處理圖像,感興趣的朋友可以了解下
    2020-09-09
  • 使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn)

    使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn)

    這篇文章主要介紹了使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • windows下Pycharm安裝opencv的多種方法

    windows下Pycharm安裝opencv的多種方法

    這篇文章主要介紹了windows下Pycharm安裝opencv的多種方法,本文給大家分享四種方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-03-03
  • 用實(shí)例分析Python中method的參數(shù)傳遞過(guò)程

    用實(shí)例分析Python中method的參數(shù)傳遞過(guò)程

    這篇文章主要介紹了用實(shí)例分析Python中method的參數(shù)傳遞過(guò)程,包括instancemethod和staticmethod等實(shí)例,需要的朋友可以參考下
    2015-04-04
  • python3 unicode列表轉(zhuǎn)換為中文的實(shí)例

    python3 unicode列表轉(zhuǎn)換為中文的實(shí)例

    今天小編就為大家分享一篇python3 unicode列表轉(zhuǎn)換為中文的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 如何用python 操作zookeeper

    如何用python 操作zookeeper

    這篇文章主要介紹了如何用python 操作zookeeper,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12

最新評(píng)論