溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中selenium指的是什么

發(fā)布時(shí)間:2020-08-01 09:41:06 來(lái)源:億速云 閱讀:1202 作者:清晨 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)python中selenium指的是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一、selenium簡(jiǎn)介

1、什么是selenium

selenium最初是一個(gè)自動(dòng)化測(cè)試工具,而爬蟲(chóng)中使用它主要是為了解決requests無(wú)法執(zhí)行javaScript代碼的問(wèn)題。

2、selenium的用途

(1)selenium可以驅(qū)動(dòng)瀏覽器自動(dòng)執(zhí)行自定義好的邏輯代碼,也就是可以通過(guò)代碼完全模擬成人類使用瀏覽器自動(dòng)訪問(wèn)目標(biāo)站點(diǎn)并操作,那我們也可以拿它來(lái)做爬蟲(chóng)。

(2)selenium本質(zhì)上是通過(guò)驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的操作,比如跳轉(zhuǎn)、輸入、點(diǎn)擊、下拉等...進(jìn)而拿到網(wǎng)頁(yè)渲染之后的結(jié)果,可支持多種瀏覽器

3、selenium是優(yōu)缺點(diǎn)

(1)優(yōu)點(diǎn)

優(yōu)點(diǎn)就是可以幫我們避開(kāi)一系列復(fù)雜的通信流程,例如在我們之前學(xué)習(xí)的requests模塊,那么requests模塊在模擬請(qǐng)求的時(shí)候是不是需要把素有的通信流程都分析完成后才能通過(guò)請(qǐng)求,然后返回響應(yīng)。假如目標(biāo)站點(diǎn)有一系列復(fù)雜的通信流程,例如的登錄時(shí)的滑動(dòng)驗(yàn)證等...那么你使用requests模塊的時(shí)候是不是就特別麻煩了。不過(guò)你也不需要擔(dān)心,因?yàn)榫W(wǎng)站的反爬策略越高,那么用戶的體驗(yàn)效果就越差,所以網(wǎng)站都需要在用戶的淫威之下降低安全策略。

再看一點(diǎn)requests請(qǐng)求庫(kù)能不能執(zhí)行js?是不是不能呀!那么如果你的網(wǎng)站需要發(fā)送ajax請(qǐng)求,異步獲取數(shù)據(jù)渲染到頁(yè)面上,是不是就需要使用js發(fā)送請(qǐng)求了。那瀏覽器的特點(diǎn)是什么?是不是可以直接訪問(wèn)目標(biāo)站點(diǎn),然后獲取對(duì)方的數(shù)據(jù),從而渲染到頁(yè)面上。那這些就是使用selenium的好處!

(2)缺點(diǎn)

使用selenium本質(zhì)上是驅(qū)動(dòng)瀏覽器對(duì)目標(biāo)站點(diǎn)發(fā)送請(qǐng)求,那瀏覽器在訪問(wèn)目標(biāo)站點(diǎn)的時(shí)候,是不是都需要把靜態(tài)資源都加載完畢。html、css、js這些文件是不是都要等待它加載完成。是不是速度特別慢。那用它的壞處就是效率極低!所以我們一般用它來(lái)做登錄驗(yàn)證。

二、selenium的安裝

1、下載selenium模塊:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium

或者在pycharm中下載

2、安裝瀏覽器驅(qū)動(dòng)

(1)Google瀏覽器驅(qū)動(dòng):https://sites.google.com/a/chromium.org/chromedriver/downloads

注:把下載好的chromedriver.exe放到python安裝路徑的scripts目錄中即可。

(2)firefox瀏覽器驅(qū)動(dòng):

selenium3默認(rèn)支持的webdriver是Firfox,而Firefox需要安裝geckodriver

下載鏈接:https://github.com/mozilla/geckodriver/releases

三、selenium的基本使用

from selenium import webdriver  # 用來(lái)驅(qū)動(dòng)瀏覽器的
from selenium.webdriver import ActionChains  # 破解滑動(dòng)驗(yàn)證碼的時(shí)候用的 可以拖動(dòng)圖片
from selenium.webdriver.common.by import By  # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys  # 鍵盤按鍵操作
from selenium.webdriver.support import expected_conditions as EC  # 和下面WebDriverWait一起用的
from selenium.webdriver.support.wait import WebDriverWait  # 等待頁(yè)面加載某些元素
import time
driver=webdriver.Chrome()
try:
    wait=WebDriverWait(driver,10)
    #1、訪問(wèn)百度
    driver.get('https://www.baidu.com/')
    #2、查找輸入框
    #     input_tag = wait.until(
    #         # 調(diào)用EC的presence_of_element_located()
    #         EC.presence_of_element_located(
    #             # 此處可以寫一個(gè)元組
    #             # 參數(shù)1: 查找屬性的方式
    #             # 參數(shù)2: 屬性的名字
    #             (By.ID, "kw")
    #         )
    #     )
    input_tag=wait.until(EC.presence_of_element_located((By.ID,"kw")))
    #3、在搜索框在輸入要搜索的內(nèi)容
    input_tag.send_keys('秦時(shí)明月')
    # 4、按鍵盤回車鍵
    input_tag.send_keys(Keys.ENTER)
    time.sleep(3)
finally:
    driver.close()

關(guān)于python中selenium指的是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI