最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?selenium模塊的安裝和配置教程

 更新時(shí)間:2022年10月28日 11:41:31   作者:IT工藤新一  
這篇文章主要為大家介紹了python中selenium模塊的安裝和配置環(huán)境變量教程、提取數(shù)據(jù)操作、無(wú)頭模式,有需要的朋友可以借鑒參考下,希望能夠?qū)Υ蠹矣兴鶐椭?/div>

一、selenium的安裝以及簡(jiǎn)單應(yīng)用

我們以谷歌瀏覽器的chromedriver為例

1、在Python虛擬環(huán)境中安裝selenium模塊

pip/pip3 install selenium

2、下載版本符合的webdriver

以chrome谷歌瀏覽器為例

查看谷歌瀏覽器的版本

鼠標(biāo)點(diǎn)擊右上角的豎排的三個(gè)點(diǎn),然后選擇“幫助”,選擇“關(guān)于 Google Chrome”,進(jìn)去之后即可查看谷歌瀏覽器的版本

訪問下載chromedriver網(wǎng)站

訪問chromedriver下載地址,點(diǎn)擊進(jìn)入不同版本的chromedriver下載頁(yè)面

點(diǎn)擊notes.txt進(jìn)入版本說(shuō)明頁(yè)面 

查看chrome和chromedriver匹配的版本

根據(jù)操作系統(tǒng)下載正確版本的chromedriver

解壓壓縮包后獲取python代碼可以調(diào)用的谷歌瀏覽器的webdriver可執(zhí)行文件

  • windows為 chromedriver.exe
  • linux和macos為 chromedriver

chromedriver環(huán)境的配置

  • windows環(huán)境下需要將 chromedriver.exe 所在的目錄設(shè)置為path環(huán)境變量中的路徑
  • linux/mac環(huán)境下,將 chromedriver 所在的目錄設(shè)置到系統(tǒng)的PATH環(huán)境值中

3、chromedriver環(huán)境配置的教程

windows環(huán)境下將 chromedriver.exe 所在的目錄設(shè)置為path環(huán)境變量中的路徑的過(guò)程

鼠標(biāo)右鍵點(diǎn)擊“Google Chrome” ,然后點(diǎn)擊“打開文件所在位置”復(fù)制 chrome.exe 所在的文件路徑

接著打開“控制面板” 搜索輸入 “環(huán)境變量” 并搜索,然后點(diǎn)擊 “編輯系統(tǒng)環(huán)境變量”

 

二、selenium的簡(jiǎn)單使用

Selenium是一個(gè)Web的自動(dòng)化測(cè)試工具,最初是為網(wǎng)站自動(dòng)化測(cè)試而開發(fā)的。

Selenium 可以直接調(diào)用瀏覽 器,它支持所有主流的瀏覽器(包括PhantomJS這些無(wú)界面的瀏覽器),可以接收指令,讓瀏覽器自動(dòng)加載頁(yè) 面,獲取需要的數(shù)據(jù),甚至頁(yè)面截屏等。

我們可以使用selenium很容易完成之前編寫的爬蟲,接下來(lái)我們就來(lái) 看一下selenium的運(yùn)行效果

接下來(lái)我們就通過(guò)代碼來(lái)模擬百度搜索(展示效果)

import time 
from selenium import webdriver 
 
# 通過(guò)指定chromedriver的路徑來(lái)實(shí)例化driver對(duì)象,chromedriver放在當(dāng)前目錄。 
# driver = webdriver.Chrome(executable_path='./chromedriver') 
# 這里的chromedriver已經(jīng)添加環(huán)境變量 
driver = webdriver.Chrome() 
 
# 控制瀏覽器訪問url地址 
driver.get("https://www.baidu.com/") 
time.sleep(3)
# 在百度搜索框中搜索'python' 
driver.find_element_by_id('kw').send_keys('python') 
# 點(diǎn)擊'百度搜索' 
driver.find_element_by_id('su').click() 
time.sleep(6) 
# 退出瀏覽器 
driver.quit()

運(yùn)行結(jié)果

webdriver.Chrome(executable_path='./chromedriver') 中executable參數(shù)指定的是下載好的

chromedriver文件的路徑

driver.find_element_by_id('kw').send_keys('python') 定位id屬性值是'kw'的標(biāo)簽,并向其中輸入字符 串'python'

driver.find_element_by_id('su').click() 定位id屬性值是su的標(biāo)簽,并點(diǎn)擊

click函數(shù)作用是:觸發(fā)標(biāo)簽的js的click事件

三、selenium提取數(shù)據(jù)

1、driver對(duì)象常用的屬性和方法

在使用selenium過(guò)程中,實(shí)例化driver對(duì)象后,driver對(duì)象有一些常用的屬性和方法

  • driver.page_source 獲取當(dāng)前標(biāo)簽頁(yè)瀏覽器渲染之后的網(wǎng)頁(yè)源代碼
  • driver.current_url獲取當(dāng)前標(biāo)簽頁(yè)的url
  • driver.close() 關(guān)閉當(dāng)前標(biāo)簽頁(yè),如果只個(gè)一個(gè)標(biāo)簽頁(yè)則關(guān)閉整個(gè)瀏覽器
  • driver.quit() 關(guān)閉瀏覽器
  • driver.forward() 頁(yè)面前進(jìn)
  • driver.back() 頁(yè)面后退
  • driver.screen_shot(img_name) 頁(yè)面截圖

示例

打印當(dāng)前標(biāo)簽頁(yè)的url

import time
from selenium import webdriver
 
driver = webdriver.Chrome()
# 控制瀏覽器訪問url地址
driver.get("https://www.baidu.com/")
time.sleep(3)
# 打印當(dāng)前標(biāo)簽頁(yè)的url
print(driver.current_url)
driver.quit()

運(yùn)行結(jié)果:

2、driver對(duì)象定位標(biāo)簽元素獲取標(biāo)簽對(duì)象的方法

在selenium中可以通過(guò)多種方式來(lái)定位標(biāo)簽,返回標(biāo)簽元素對(duì)象

方式功能
find_element_by_id返回一個(gè)元素
find_element(s)_by_class_name根據(jù)類名獲取元素列表
find_element(s)_by_name根據(jù)標(biāo)簽的name屬性值返回包含標(biāo)簽對(duì)象元素的列表
find_element(s)_by_xpath返回一個(gè)包含元素的列表
find_element(s)_by_link_text根據(jù)連接文本獲取元素列表
find_element(s)_by_partial_link_text根據(jù)鏈接包含的文本獲取元素列表
find_element(s)_by_tag_name;根據(jù)標(biāo)簽名獲取元素列表
find_element(s)_by_css_selector根據(jù)css選擇器來(lái)獲取元素列表

注意

find_element和find_elements的區(qū)別:

  • 多了個(gè)s就返回列表,沒有s就返回匹配到的第一個(gè)標(biāo)簽對(duì)象
  • find_element匹配不到就拋出異常,find_elements匹配不到就返回空列表

by_link_text 和 by_partial_link_tex 的區(qū)別:全部文本和包含某個(gè)文本

以上函數(shù)的使用方法:

driver.find_element_by_id('id_str')

id_str是id值

示例

接下來(lái)我們就通過(guò)代碼來(lái)模擬百度搜索(具體講解)

首先我們先打開百度頁(yè)面,然后點(diǎn)擊網(wǎng)頁(yè)檢查 ,定位搜索框,可以看見搜索框的input標(biāo)簽的id值為kw

  • 于是開始編寫基礎(chǔ)代碼
  • 通過(guò)driver.get()獲取網(wǎng)頁(yè)
  • 通過(guò)find_element_by_id('kw')定位搜索框
  • 通過(guò).send_keys('python')向搜索框輸入搜索信息
import time
from selenium import webdriver
 
driver = webdriver.Chrome()
 
# 控制瀏覽器訪問url地址
driver.get("https://www.baidu.com/")
time.sleep(3)
# 在百度搜索框中搜索'python'
driver.find_element_by_id('kw').send_keys('python')

再定位搜索按鈕:“百度一下” ,其id值為su

完善代碼,通過(guò) .click() 實(shí)現(xiàn)點(diǎn)擊搜索

import time
from selenium import webdriver
 
driver = webdriver.Chrome()
 
# 控制瀏覽器訪問url地址
driver.get("https://www.baidu.com/")
time.sleep(3)
# 在百度搜索框中搜索'python'
driver.find_element_by_id('kw').send_keys('python')
# 點(diǎn)擊'百度搜索'
driver.find_element_by_id('su').click()
time.sleep(6)
# 退出瀏覽器
driver.quit()

運(yùn)行結(jié)果

3、標(biāo)簽對(duì)象提取文本內(nèi)容和屬性值

find_element僅僅能夠獲取元素,不能夠直接獲取其中的數(shù)據(jù),如果需要獲取數(shù)據(jù)需要使用以下方法

對(duì)元素執(zhí)行點(diǎn)擊操作: element.click()

對(duì)定位到的標(biāo)簽對(duì)象進(jìn)行點(diǎn)擊操作

向輸入框輸入數(shù)據(jù): element.send_keys(data)

對(duì)定位到的標(biāo)簽對(duì)象輸入數(shù)據(jù)

獲取文本: element.text

通過(guò)定位獲取的標(biāo)簽對(duì)象的 text 屬性,獲取文本內(nèi)容

獲取屬性值: element.get_attribute("屬性名")

通過(guò)定位獲取的標(biāo)簽對(duì)象的 get_attribute 函數(shù),傳入屬性名,來(lái)獲取屬性的值

獲取 “百度一下”搜索按鈕的value屬性值

import time
from selenium import webdriver
 
driver = webdriver.Chrome()
 
# 控制瀏覽器訪問url地址
driver.get("https://www.baidu.com/")
time.sleep(3)
# 點(diǎn)擊'百度搜索',用ele變量接受獲取的元素
ele = driver.find_element_by_id('su')
print(ele.get_attribute('value'))
time.sleep(6)
# 退出瀏覽器
driver.quit()

運(yùn)行結(jié)果

四、selenium無(wú)頭模式

我們知道,當(dāng)我們利用 dirver.get() 獲取網(wǎng)頁(yè)時(shí)會(huì)自動(dòng)打開一個(gè)網(wǎng)頁(yè),但是有時(shí)候我們可能不需要通過(guò)打開瀏覽器獲取數(shù)據(jù),于是就可以通過(guò)給driver對(duì)象設(shè)置無(wú)頭模式 。

# 給driver對(duì)象設(shè)置無(wú)頭模式
op = webdriver.ChromeOptions()
op.add_argument('--headless')
driver = webdriver.Chrome(options=op)

以上就是Python selenium模塊的安裝和配置教程的詳細(xì)內(nèi)容,更多關(guān)于Python selenium模塊的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Python 正則表達(dá)式模塊

    詳解Python 正則表達(dá)式模塊

    這篇文章主要介紹了Python 正則表達(dá)式模塊詳解,分為兩部分,包括基礎(chǔ)語(yǔ)法總結(jié),re模塊的相關(guān)知識(shí),需要的朋友可以參考下
    2018-11-11
  • python和Appium移動(dòng)端多設(shè)備自動(dòng)化測(cè)試框架實(shí)現(xiàn)

    python和Appium移動(dòng)端多設(shè)備自動(dòng)化測(cè)試框架實(shí)現(xiàn)

    這篇文章主要介紹了python和Appium移動(dòng)端多設(shè)備自動(dòng)化測(cè)試框架實(shí)現(xiàn),基于pytest和Appium框架,支持Android和iOS功能自動(dòng)化的測(cè)試框架的相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-04-04
  • opencv對(duì)多種顏色小球的形狀及位置判斷方式

    opencv對(duì)多種顏色小球的形狀及位置判斷方式

    在這段時(shí)間參加了一個(gè)競(jìng)賽,寫下了這個(gè)代碼,但是總感覺有一些地方是不完善!這是一個(gè)關(guān)于使用opencv庫(kù)判斷顏色小球形狀及位置的功能實(shí)現(xiàn),其中也參考了一些前輩的代碼,希望能對(duì)迷茫中的小伙幫有所幫助
    2022-11-11
  • Python單例模式的兩種實(shí)現(xiàn)方法

    Python單例模式的兩種實(shí)現(xiàn)方法

    這篇文章主要介紹了Python單例模式的相關(guān)資料,這里提供了兩種實(shí)現(xiàn)方法,及注意事項(xiàng),需要的朋友可以參考下
    2017-08-08
  • Python的字符串操作簡(jiǎn)單實(shí)例

    Python的字符串操作簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Python的字符串操作簡(jiǎn)單實(shí)例,字符串有許多種操作方式,本文帶來(lái)幾個(gè)操作實(shí)例,快來(lái)一起看看吧
    2023-04-04
  • python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(pygame版)

    python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲(pygame版)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)pygame版的飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Python Tornado核心及相關(guān)原理詳解

    Python Tornado核心及相關(guān)原理詳解

    這篇文章主要介紹了Python Tornado核心及相關(guān)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)現(xiàn)遞歸遍歷文件夾并刪除文件

    Python實(shí)現(xiàn)遞歸遍歷文件夾并刪除文件

    本文給大家匯總了3個(gè)Python實(shí)現(xiàn)遍歷文件夾并刪除的代碼,主要是給大家分享下這3種方法的實(shí)現(xiàn)思路,有需要的小伙伴可以參考下
    2016-04-04
  • Python模擬登錄網(wǎng)易云音樂并自動(dòng)簽到

    Python模擬登錄網(wǎng)易云音樂并自動(dòng)簽到

    時(shí)隔三周沒有和大家見過(guò)面了,最近在研究python模擬登陸專題,話不多說(shuō),讓我們愉快地開始實(shí)現(xiàn)模擬登陸實(shí)現(xiàn)網(wǎng)易云自動(dòng)簽到,需要的朋友可以參考下
    2021-06-06
  • 使用Python paramiko模塊利用多線程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作

    使用Python paramiko模塊利用多線程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作

    ssh是一個(gè)協(xié)議,OpenSSH是其中一個(gè)開源實(shí)現(xiàn),paramiko是Python的一個(gè)庫(kù),實(shí)現(xiàn)了SSHv2協(xié)議(底層使用cryptography)。這篇文章主要介紹了使用Python paramiko模塊利用多線程實(shí)現(xiàn)ssh并發(fā)執(zhí)行操作,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

周宁县| 漠河县| 建水县| 讷河市| 长丰县| 略阳县| 兴义市| 栾川县| 巴里| 灵川县| 左权县| 璧山县| 库尔勒市| 阿瓦提县| 修文县| 商洛市| 道真| 长丰县| 鹤峰县| 华池县| 汤原县| 公主岭市| 乌兰浩特市| 子洲县| 乌鲁木齐市| 依兰县| 闻喜县| 浦北县| 沅陵县| 湖州市| 梅河口市| 乌鲁木齐县| 达孜县| 屏南县| 温宿县| 景东| 买车| 崇阳县| 土默特左旗| 崇文区| 佛学|