Day.04 selenium的基础
生活随笔
收集整理的這篇文章主要介紹了
Day.04 selenium的基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.selenium的介紹
1、selenium是什么?
selenium最初是一個自動化測試工具,而爬蟲中使用它主要是為了解決requests無法執行javaScript代碼的問題。官網:http://selenium-python.readthedocs.io
?
2、為什么要用selenium?
selenium可以驅動瀏覽器自動執行自定義好的邏輯代碼,也就是可以通過代碼完全模擬成人類使用瀏覽器自動訪問目標站點并操作,那我們也可以拿它來做爬蟲。selenium本質上是通過驅動瀏覽器,完全模擬瀏覽器的操作,比如跳轉、輸入、點擊、下拉等...進而拿到網頁渲染之后的結果,可支持多種瀏覽器。 那么對于爬蟲來說,用它有沒有好處?有,好處就是可以幫我們避開一系列復雜的通信流程,例如在我們之前學習的requests模塊,那么requests模塊在模擬請求的時候是不是需要把素有的通信流程都分析完成后才能通過請求,然后返回響應。假如目標站點有一系列復雜的通信流程,例如的登錄時的滑動驗證等...那么你使用requests模塊的時候是不是就特別麻煩了。不過你也不需要擔心,因為網站的反爬策略越高,那么用戶的體驗效果就越差,所以網站都需要在用戶的淫威之下降低安全策略。 再看一點requests請求庫能不能執行js?是不是不能呀!那么如果你的網站需要發送ajax請求,異步獲取數據渲染到頁面上,是不是就需要使用js發送請求了。那瀏覽器的特點是什么?是不是可以直接訪問目標站點,然后獲取對方的數據,從而渲染到頁面上。那這些就是使用selenium的好處! 那用它有沒有壞處?使用selenium本質上是驅動瀏覽器對目標站點發送請求,那瀏覽器在訪問目標站點的時候,是不是都需要把靜態資源都加載完畢。html、css、js這些文件是不是都要等待它加載完成。是不是速度特別慢。那用它的壞處就是效率極低!所以我們一般用它來做登錄驗證。
?
二 安裝
''' selenium支持多種瀏覽器,但是在使用前必須去下載與瀏覽器相對應的驅動。 ''' from selenium import webdriver # 谷歌瀏覽器 browser=webdriver.Chrome() # 火狐瀏覽器 browser=webdriver.Firefox() # 無界面瀏覽器 browser=webdriver.PhantomJS() # 蘋果瀏覽器 browser=webdriver.Safari() # IE瀏覽器 browser=webdriver.Edge() ''' 安裝selenium與谷歌驅動:selenium + chromedriver下載selenium模塊:pip3 install selenium下載chromed瀏覽器驅動:把下載好的chromedriver.exe放到python安裝路徑的scripts目錄中即可,注意最新版本是2.38,并非2.9- 國內鏡像網站地址:http://npm.taobao.org/mirrors/chromedriver/2.38/- 最新的版本去官網找:https://sites.google.com/a/chromium.org/chromedriver/downloads驗證安裝:- 進入python解釋器:>>> C:\Users\Administrator>python3>>> Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32>>> Type "help", "copyright", "credits" or "license" for more information.>>> from selenium import webdriver>>> driver=webdriver.Chrome() #彈出瀏覽器>>> driver.get('https://www.baidu.com')>>> driver.page_source注意:selenium3默認支持的webdriver是Firfox,而Firefox需要安裝geckodriver下載鏈接:https://github.com/mozilla/geckodriver/releases'''?
三 基本使用
1、示例一
from selenium import webdriver # 用來驅動瀏覽器的 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 timetry:driver = webdriver.Chrome()driver.get('https://www.baidu.com')wait = WebDriverWait(driver, 10)input_tag = wait.until(EC.presence_of_element_located((By.ID, 'kw')))input_tag.send_keys('美女')input_tag.send_keys(Keys.ENTER)time.sleep(5)finally:driver.close()轉載于:https://www.cnblogs.com/promiss911/p/11100047.html
總結
以上是生活随笔為你收集整理的Day.04 selenium的基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【i.MX6UL/i.MX6ULL开发常
- 下一篇: Bootstrap-Table入门篇