XPath使用小結

使用scrapy爬蟲,不可避免的需要對網(wǎng)頁結構進行分析并提取,其中用到的一個重要的工具就是XPath。XPath可以幫助我們很方便的對html元素進行定位選擇。

在Chrome中使用XPath

在chrome中使用XPath,只需要在開發(fā)者工具中點擊控制臺(Console)標簽,然安徽使用$x功能就可以了。


1.png

比如獲取所有的section標簽,我們使用$x('//section'),控制臺中就可以看到一個包含所有元素的Javascript數(shù)組。將光標移動到這個數(shù)組上,還可以看到被選擇的元素被高亮顯示。


2.png

至于這個表達式('//section')的規(guī)則是如何的,下面來粗略的介紹一下。

XPath表達式

/ 單斜杠

HTML文檔的層級結構的最高級是<html>標簽??梢允褂迷孛托备芫€選擇任意元素。
以這個html文檔為例:


12.png

獲取body標簽使用/html/body
獲取body下的section標簽使用/html/body/section,因為有5個section元素,所以這個結果是有5個元素的JavaScript數(shù)組。
可以使用[index]來獲取這個數(shù)組的元素。
例如要獲取第一個section標簽,使用/html/body/section[1]
注意:這個地方index是從1開始計算的,而不是0,這跟一般的數(shù)組獲取元素有點不同。

4.png

// 雙斜杠

// 可以訪問所有的同名元素
例如,要找到html中所有的section元素,使用//section即可


5.png

@ 訪問屬性

比如獲取head中的charset屬性

6.png
7.png

也可以只通過text()函數(shù)選擇文字。

在Chrome瀏覽器中獲得XPath表達式

提前應對網(wǎng)頁發(fā)生改變

. 避免使用數(shù)組序號
. 用class抓取效果不一定好
. 數(shù)據(jù)指向的class優(yōu)于排版指向的class
. id通常是最可靠的

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評論 19 139
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的,因此網(wǎng)頁是網(wǎng)絡信息傳遞的載體。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 4,954評論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,162評論 1 92
  • 人類大部分的思考都有關痛苦而無關快樂;也許快樂的本質就像浮云,遙遠而曼妙地在空中飄蕩,讓人仰望卻并無力量;而痛苦的...
    同_昕閱讀 661評論 3 9
  • 親愛的軒軒: 又是一個周末結束,粑粑爬山,媽媽帶著你,發(fā)覺媽媽自己也越來越厲害,又是燒菜做飯,還要帶你玩耍運動上課...
    在寫日志的眼袋妹閱讀 287評論 0 1

友情鏈接更多精彩內容