重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
這篇文章將為大家詳細講解有關(guān)python中selenium指的是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有王屋免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
一、selenium簡介
1、什么是selenium
selenium最初是一個自動化測試工具,而爬蟲中使用它主要是為了解決requests無法執(zhí)行javaScript代碼的問題。
2、selenium的用途
(1)selenium可以驅(qū)動瀏覽器自動執(zhí)行自定義好的邏輯代碼,也就是可以通過代碼完全模擬成人類使用瀏覽器自動訪問目標站點并操作,那我們也可以拿它來做爬蟲。
(2)selenium本質(zhì)上是通過驅(qū)動瀏覽器,完全模擬瀏覽器的操作,比如跳轉(zhuǎn)、輸入、點擊、下拉等...進而拿到網(wǎng)頁渲染之后的結(jié)果,可支持多種瀏覽器
3、selenium是優(yōu)缺點
(1)優(yōu)點
優(yōu)點就是可以幫我們避開一系列復(fù)雜的通信流程,例如在我們之前學(xué)習(xí)的requests模塊,那么requests模塊在模擬請求的時候是不是需要把素有的通信流程都分析完成后才能通過請求,然后返回響應(yīng)。假如目標站點有一系列復(fù)雜的通信流程,例如的登錄時的滑動驗證等...那么你使用requests模塊的時候是不是就特別麻煩了。不過你也不需要擔心,因為網(wǎng)站的反爬策略越高,那么用戶的體驗效果就越差,所以網(wǎng)站都需要在用戶的淫威之下降低安全策略。
再看一點requests請求庫能不能執(zhí)行js?是不是不能呀!那么如果你的網(wǎng)站需要發(fā)送ajax請求,異步獲取數(shù)據(jù)渲染到頁面上,是不是就需要使用js發(fā)送請求了。那瀏覽器的特點是什么?是不是可以直接訪問目標站點,然后獲取對方的數(shù)據(jù),從而渲染到頁面上。那這些就是使用selenium的好處!
(2)缺點
使用selenium本質(zhì)上是驅(qū)動瀏覽器對目標站點發(fā)送請求,那瀏覽器在訪問目標站點的時候,是不是都需要把靜態(tài)資源都加載完畢。html、css、js這些文件是不是都要等待它加載完成。是不是速度特別慢。那用它的壞處就是效率極低!所以我們一般用它來做登錄驗證。
二、selenium的安裝
1、下載selenium模塊:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium
或者在pycharm中下載
2、安裝瀏覽器驅(qū)動
(1)Google瀏覽器驅(qū)動:https://sites.google.com/a/chromium.org/chromedriver/downloads
注:把下載好的chromedriver.exe放到python安裝路徑的scripts目錄中即可。
(2)firefox瀏覽器驅(qū)動:
selenium3默認支持的webdriver是Firfox,而Firefox需要安裝geckodriver
下載鏈接:https://github.com/mozilla/geckodriver/releases
三、selenium的基本使用
from selenium import webdriver # 用來驅(qū)動瀏覽器的 from selenium.webdriver import ActionChains # 破解滑動驗證碼的時候用的 可以拖動圖片 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 # 等待頁面加載某些元素 import time driver=webdriver.Chrome() try: wait=WebDriverWait(driver,10) #1、訪問百度 driver.get('https://www.baidu.com/') #2、查找輸入框 # input_tag = wait.until( # # 調(diào)用EC的presence_of_element_located() # EC.presence_of_element_located( # # 此處可以寫一個元組 # # 參數(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('秦時明月') # 4、按鍵盤回車鍵 input_tag.send_keys(Keys.ENTER) time.sleep(3) finally: driver.close()
關(guān)于python中selenium指的是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。