溫馨提示×

溫馨提示×

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

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

Python爬蟲XPath怎么用

發(fā)布時間:2021-11-18 13:00:10 來源:億速云 閱讀:152 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了“Python爬蟲XPath怎么用”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python爬蟲XPath怎么用”這篇文章吧。

一、問題描述

1.什么是XPath?

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

二、解決方案

1.XPath語法

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

<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> # 注意,此處缺少一個 </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)簽是一級一級如樹狀的。Xpath正是通過這樣的方式去尋找。以生活中舉例,要確定一個人的位置,首先確定他在中國,然后確定他在某個省份,哪座城市,那個小區(qū),最后找到他。

表達(dá)式

描述

Nodename

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

/

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

//

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

@

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

.

當(dāng)前節(jié)點

Text()

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

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

2.lxml庫

簡單介紹一下lxml庫,接下來會用到它

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

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

3.實際案例

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

如下圖:

Python爬蟲XPath怎么用

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

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

運行如下:

Python爬蟲XPath怎么用

以上是“Python爬蟲XPath怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)
推薦閱讀:
  1. Xpath 詳解
  2. Xpath語法

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI