日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

为什么有些xpath绝对路径拿不到数据_Python爬虫,登陆神器Selenium之xpath的使用

發布時間:2024/10/8 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么有些xpath绝对路径拿不到数据_Python爬虫,登陆神器Selenium之xpath的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開始寫自動化腳本之前,我們先學習幾個概念,在完全掌握了這幾個概念之后,有助于我們快速上手,如何去編寫自動化測試腳本。

元素,在這個教程系列,我們說的元素之網頁元素(web element)。在網頁上面的文本輸入框,按鈕,多選,單選,標簽,和文字都叫元素,總之,凡是能在頁面顯示的對象都可以作為頁面元素對象。

元素定位,有時候也叫Locator,一個HTML頁面元素,可以用很多方法去描述這個元素的位置。打個比方,生活中地址,一個大廈,正常的地址是 xx省xx市xx區xx街道xxx號,這個具體描述就是這個大廈的Locator。同樣的道理,一個網頁元素,也有位置,也可以通過一些手段或者表達式去描述這個元素在頁面對應的位置。

XPath,XPath即為XML路徑語言,它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言。XPath基于XML的樹狀結構,提供在數據結構樹中找尋節點的能力,XPath 很快的被開發者采用來當作小型查詢語言。

Selenium一共有八種元素定位方法,其中,在實際開發自動化腳本過程中,XPath的使用是最多的一種方法,所以本文就介紹如何通過XPath來元素定位。學習了XPath元素定位后,其他7中方法,很容易理解,甚至已經學會了其中好幾種方法。

一.XPath工具安裝

為了提高抓取元素XPath的,我推薦在Firefox上安裝一個firepath的插件,這個插件,可以幫我們快速獲取網頁元素的XPath表達式。

1. 打開火狐瀏覽器,如果沒有安裝,下載默認安裝

2. 點擊右上角,菜單-附件組件-擴展

3. 在搜索所有附件組件文本輸入框輸入:firebug

4. 找到Firebug,點擊 安裝。重復步驟3和4,搜索和安裝FirePath。

5. 安裝好了之后,會在火狐瀏覽器右上角顯示一個蟲子的圖標。

二.XPath工具簡單使用

我們用定位百度首頁的搜索輸入框這個元素定位來演示。

1. 打開百度首頁

2. 鼠標定位到搜索輸入框

3. 右鍵鼠標,選Inspect in FirePath

4. 打開界面如下圖

①FirePath自動推薦該元素的XPath表達式

②該元素節點的詳細信息,XPath表達式選取重點區域

③找到一個匹配元素

一般來說,自動推薦的XPath表達式定位不夠精確。我們大部分時候需要去步驟2中,找出能夠識別這個唯一元素的節點信息。剛好上面通過id=kw只能找到一個匹配的元素,說明這個XPath可用,看起來也簡潔。實際項目中,可能XPath表達式寫得很長,或者附近節點信息好多相同,不太好能夠快速找到一個唯一的節點信息去定位這個目標元素。接下來,我介紹幾種比較實用的XPath定位技巧,基本上能定位到所有的網頁元素。

三.XPath定位技巧之text()方法

以百度首頁右上角“新聞”定位舉例

XPath如下圖

四.XPath定位技巧之contains()方法

有時候,我們不喜歡寫很長的XPath表達式,而且節點信息里面,有些信息是動態的,每次都獲取都不一樣,這個時候contains()方法就很好用。

JD首頁左側電腦菜單舉例

XPath寫法推薦,這里用contains()方法來定位

這里href = //diannao.jd.com, 如果我覺得這個href太長,我只取關鍵字diannao,利用contains()方法來定位就方便多了,推薦電腦這個元素的XPath://*/a[contains(@href,'diannao')]

五. 相對XPath路徑寫法

有時候,我們遇到目標元素節點的信息很少,不足夠用來精確定位到目標元素,這個時候,我們就需要考慮,利用目標元素上下附件節點,通過確定附件的節點從而確定目標元素,這種方式就叫相對路徑。

這里用百度新聞首頁的一個單選按鈕來舉例;

火狐瀏覽器上firepath給出的推薦表達式是:

這里推薦的XPath是根據目標元素節點中id信息來定位的,這個通過id就能定位,當然好。有時候,如果這個id不能作為參考值,我們需要利用相對定位方法來定位這個新聞標題前面的單選按鈕;

1)先根據for = newstitle 或者text()=新聞標題來定位“新聞標題”這個標簽。

2)根據相對定位來確定“新聞標題”前面的這個radio按鈕。

3)XPath的寫法是:.//*/label[@for='newstitle']/../input[@id='newstitle']

由于,當前這個舉例不是很符合只能采用相對定位才能確定元素的場景,感覺這個表達式定位,在這里反而更復雜化,但是,相對定位元素方法是一樣的,和上面舉例的步驟、思維方式是一致的。如果發生了,無法通過目標元素節點信息來定位,那么,就要考慮是否采用相對路徑來解決這個問題。元素定位,理論上是沒有定位不到的元素,通過以上方法,基本上能定位項目中大部分元素。

總結

以上是生活随笔為你收集整理的为什么有些xpath绝对路径拿不到数据_Python爬虫,登陆神器Selenium之xpath的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美黄色免费看 | 用我的手指扰乱你 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | 亚洲精品v天堂中文字幕 | 四虎免看黄 | 手机在线免费看av | 国产又色又爽又黄又免费 | 日本在线观看网站 | www99热| 丁香花电影免费播放电影 | 成人网在线免费观看 | 欧亚免费视频 | 97狠狠干| 国产一区二区黑人欧美xxxx | 日本不卡一区二区三区在线观看 | 美乳人妻一区二区三区 | 久久午夜精品人妻一区二区三区 | 日韩av电影网站 | yy6080午夜 | 亚洲欧美视频在线观看 | 国产精品一区免费观看 | 色偷偷免费视频 | 免费黄毛片| 国产乱码精品一区二区三区精东 | 黄色片久久 | 波多野结衣av一区二区全免费观看 | 性一交一乱一区二区洋洋av | 亚洲一区二区中文字幕 | 可以免费看的av毛片 | 少妇av一区二区 | 成人免费毛片aaaaaa片 | 一级片免费视频 | 亚洲成av人片 | 久久久久国产精品 | 国产精品99久久久精品无码 | 91尤物视频 | 日本黄色一区二区三区 | 特黄视频在线观看 | 亚洲激情网站 | 综合激情五月婷婷 | 国产在线午夜 | 正在播放欧美 | aaa国产 | 99精品中文字幕 | 中文区中文字幕免费看 | 国产永久免费观看 | 韩日av在线 | 尤物视频在线观看免费 | 天堂√ | 韩漫动漫免费大全在线观看 | 在线观看黄色 | 国产欧美精品一区二区色综合 | 欧美日韩中文字幕 | 美国毛片基地 | 91久久精品美女高潮 | 成人av手机在线 | av日韩一区二区三区 | 我和公激情中文字幕 | 国产三级精品三级 | 瑟瑟视频免费看 | 国产一级aa大片毛片 | 国产精品久久久久影院色老大 | 九色影院 | 亚洲激情图片区 | 黄色一级国产 | 加勒比精品 | 国产亚洲精品久久久久婷婷瑜伽 | av在线男人天堂 | 亚洲欧美日韩一区二区三区四区 | 凹凸精品一区二区三区 | 人人搞人人爱 | 午夜aa | 免费av在线网站 | 日韩不卡视频一区二区 | 亚洲人人精品 | 成人在线免费电影 | 青青草国产一区 | 一本到在线 | 国产伦人伦偷精品视频 | 影音先锋在线看片资源 | 国产吞精囗交免费视频 | 九九热在线视频观看 | 精品免费视频 | 寡妇av | 性高湖久久久久久久久免费 | 欧美日韩视频在线观看一区 | 手机在线成人 | 一区二区国产在线观看 | 91精品国产色综合久久不卡蜜臀 | 亚洲综合专区 | 成人精品视频 | 草草视频在线 | 日日舔夜夜摸 | 国产91色 | 国产一区二区麻豆 | 自拍偷拍视频在线观看 | 熟妇人妻一区二区三区四区 | 天天综合欧美 | 欧美亚洲国产精品 |