今天來給大家介紹一下selenium的安裝與使用
一、首先介紹一下selenium:python中常用selenium爬取動態渲染網頁,selenium是一個自動化測試工具,在python中應用爲:
1. selenium可以完全模擬瀏覽器操作,對動態數據進行獲取,動態數據是由代碼生成,在頁面初始化的過程當中是沒有的,也沒法獲取,但是可以通過selenium來進行獲取
2.有些數據是需要進行登錄才能獲取的,比如說:好友列表,評論,消費記錄等。這些數據需要你登錄以後才能獲取,但是使用selenium後,可以避免人工登錄,只需要得到賬號密碼即可實現selenium代替登錄
二、selenium的特點:
1.有程序控制瀏覽器進行操作,而不是手動操作瀏覽器
2.程序控制瀏覽器進行操作的時候速度非常慢,所以要謹慎使用selenium
3.使用selenium控制瀏覽器的時候,需要下載瀏覽器對應的驅動程序
4.selenium爲開源,免費的,但是更新速度沒有瀏覽器快,不是selenium更新慢而是瀏覽器更新快,使用的時候要注意selenium和瀏覽器之間的對應關係
三、selenium安裝
安裝語句:pip install selenium
四、對應驅動程序的下載
我用的是谷歌和火狐 所以這裏只說這兩個
首先是谷歌:百度搜索 chromdriver下載 或者複製網址:http://npm.taobao.org/mirrors/chromedriver/
火狐:百度搜索 geckodriver 下載 或者複製網址:https://github.com/mozilla/geckodriver/releases
根據自己的情況選擇合適的版本文件下載
下載完成之後將文件放到安裝Python環境變量的文件裏 我用的是Anaconda
谷歌瀏覽器和chormdriver的對應關係
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.40 | v66-68 |
v2.39 | v66-68 |
v2.38 | v65-67 |
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
v2.22 | v49-52 |
v2.21 | v46-50 |
v2.20 | v43-48 |
v2.19 | v43-47 |
v2.18 | v43-46 |
v2.17 | v42-43 |
v2.13 | v42-45 |
v2.15 | v40-43 |
v2.14 | v39-42 |
v2.13 | v38-41 |
v2.12 | v36-40 |
v2.11 | v36-40 |
v2.10 | v33-36 |
v2.9 | v31-34 |
v2.8 | v30-33 |
v2.7 | v30-33 |
v2.6 | v29-32 |
v2.5 | v29-32 |
v2.4 | v29-32 |
五、selenium 的 webdriver模塊的使用
# 引入網頁驅動
from selenium import webdriver
# 使用網頁驅動來運行火狐瀏覽器
driver = webdriver.Firefox()
# 通過驅動來執行指定的網頁
driver.get('http://www.baidu.com')
#通過id來找
driver.find_element_by_id('kw').send_keys('selenium')
selenium提供了找到元素的方法 find_element_by_XXX
這些方法全部使用Python實現的如果只是相對這個元素進行查找,定位建議使用xpatn或者css__selecotor
如果需對找到的內容進行點擊等操作建議使用find_element_by_XXX
在使用selenium的時候會經常碰到下面這個錯誤:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="kw"]
錯誤原因是 代碼執行速度很快但瀏覽器響應很慢,代碼執行到這兒的時候,瀏覽器裏面的元素可能還沒有加載完,所以報錯,找不到指定的元素
以上就是關於selenium的安裝與一些簡單的使用。