欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
談?wù)勁老x(chóng)中定位元素的常見(jiàn)方法

 閱讀文本大概需要 3 分鐘。

前言

我們知道,不管是爬蟲(chóng)還是自動(dòng)化測試,元素定位是最基本而且必須的一個(gè)步驟。今天我們就來(lái)講講怎么定位元素。

爬蟲(chóng)中定位元素

爬蟲(chóng)中怎么定位元素呢?常見(jiàn)的有以下幾種:

  • BeautifulSoup find 定位

  • BeautifulSoup css 定位

BeautifulSoup 是一個(gè)可以從 HTML 或 XML 文件中提取數據的 Python 庫,我們需要安裝并導入這個(gè)庫。

from bs4 import BeautifulSoup

我們再把我們提取的 html 數據轉換成 lxml 格式,方便 BeautifulSoup 庫直接提取信息。

import requests
html = requests.get('ttps://www.pyzhishiquan.com/crawler')
soup = BeautifulSoup(html, 'lxml')

BeautifulSoup find查找元素

接下來(lái)我們就可以用 find 方法來(lái)查找元素了,比如查看所有 a 標簽元素。

soup.find_all('a')

BeautifulSoup css 選擇器定位元素

BeautifulSoup 中我們也可以通過(guò) css 選擇器查找定位元素,導包和格式轉換和上面一樣,格式如下。

soup.select('xxx')

select 方法中的字符串參數怎么獲取呢,以 Chrome 瀏覽器為例,F12 檢查元素中右鍵復制 seletor 就可以了。


我以前寫(xiě)的很多爬蟲(chóng)項目的文章都用過(guò)這種定位方法,比如 爬蟲(chóng)喜馬拉雅音頻 文章中提取音頻文件信息。


 爬取上海房租信息 文章中用 css 選擇器提取租房房源的信息。

當然,在源代碼中無(wú)法獲取的元素的 Ajax 動(dòng)態(tài)加載的頁(yè)面,上面的定位方法就不管用了,我們可以通過(guò)分析 Network 中的請求,找到你需要提取的信息的規律,這個(gè)內容本文不做講解。
還有一種方法是通過(guò) selenium 庫來(lái)解決,selenium 庫是模擬人工操作瀏覽器的,優(yōu)點(diǎn)可見(jiàn)即可爬,就是只要他能看到的都能獲取信息爬取下來(lái)。

selenium 定位

selenium 庫定位元素有方法很多,今天分享下常見(jiàn)的的定位方法。

我們首先需要導入 selenium 庫,通過(guò) webdriver 啟動(dòng) Chrome 瀏覽器。

from selenium import webdriver
driver = webdriver.Chrome()

ID 定位

ID 一般在頁(yè)面元素中是唯一的,可以準確定位頁(yè)面元素。

driver.find_element_by_id('id')

有些頁(yè)面元素的 id 是每次刷新頁(yè)面都不一樣的,比如 163 郵箱的用戶(hù)名輸入框 id,每次刷新頁(yè)面,這個(gè) id 都會(huì )變。所以,對于這種每次不一樣的 id,我們都不能用 id 來(lái)定位了。

這種隨機 id 的元素我們就通過(guò)其他屬性來(lái)定位或者通過(guò)父元素來(lái)找到子元素。

classname 定位

如果 classname 是唯一的話(huà),我們就可以通過(guò) classname 來(lái)定位元素。

driver.find_element_by_id('classname')

Xpath 定位

Xpath 路徑獲取方法第一個(gè)方法和剛才獲取 selector 信息一樣,直接 copy。


第二個(gè)方法可以借助插件,Chrome 瀏覽器上的 Xpath Helper 插件和火狐插件 firepath,以 Xpath Helper 為例,打開(kāi)后按住 Shift 鍵,移動(dòng)到想定位的元素,左邊就會(huì )顯示 Xpath 路徑。


這種方法缺點(diǎn)也很明顯,XPath 都是從根路徑開(kāi)始的,導致 XPath 過(guò)長(cháng),不利于維護。

雙屬性定位

對于一個(gè)屬性不是唯一的,我們可以用 Xpath 的雙屬性來(lái)定位元素,這個(gè)方法對于定位網(wǎng)頁(yè)和 APP 都適用。

上圖是網(wǎng)易云 APP,我想定位簽到按鈕,我可以通過(guò) class 屬性和 text 屬性同時(shí)定位元素。

driver.find_element_by_xpath('//*[@class='android.widget.TextView' and @text='簽到']')

這種方法適用于很多元素共用同一個(gè)屬性的情況,經(jīng)過(guò)我們的組合,就把元素唯一化了。

網(wǎng)頁(yè)元素同樣也可以用雙元素來(lái)定位,方法是一樣的。

以上是 pk 哥平時(shí)常用的定位元素的方法,如有其他好的定位方法,歡迎大家留言討論,共同進(jìn)步。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Selenium Webdriver定位頁(yè)面元素的幾種方式
[小北De編程手記](méi) : Lesson 03
Selenium Webdriver元素定位的八種常用方式
如何在Selenium WebDriver中查找元素?(一)
Python網(wǎng)絡(luò )爬蟲(chóng)四大選擇器(正則表達式、BS4、Xpath、CSS)總結
python基礎教程:8種selenium元素定位的實(shí)現
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久