人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

一文掌握Python爬蟲XPath語法

發(fā)布日期:2021-12-09 18:25 | 文章來源:源碼中國

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

一、問題描述

1.什么是XPath?

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

二、解決方案

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> 閉合標簽
</ul>
  </div>

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

表達式

描述

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()

獲取標簽中的文本

同級標簽可以用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文本

如下圖:

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

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

運行如下:

三、結(jié)語

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

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

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部