欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、selenium的安裝以及簡單應(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下載頁面

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

查看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)境變量中的路徑的過程

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

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

 

二、selenium的簡單使用

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

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

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

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

import time 
from selenium import webdriver 
 
# 通過指定chromedriver的路徑來實(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過程中,實(shí)例化driver對(duì)象后,driver對(duì)象有一些常用的屬性和方法

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

示例

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

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

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

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

在selenium中可以通過多種方式來定位標(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選擇器來獲取元素列表

注意

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值

示例

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

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

  • 于是開始編寫基礎(chǔ)代碼
  • 通過driver.get()獲取網(wǎng)頁
  • 通過find_element_by_id('kw')定位搜索框
  • 通過.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

完善代碼,通過 .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

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

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

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

獲取 “百度一下”搜索按鈕的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無頭模式

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

# 給driver對(duì)象設(shè)置無頭模式
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)文章

最新評(píng)論