前面幾節,咱們學習了用 requests 構造頁面請求來爬取靜態網頁中的信息以及經過 requests 構造 Ajax 請求直接獲取返回的 JSON 信息。html
還記得前幾節,咱們在構造請求時會給請求加上瀏覽器 headers,目的就是爲了讓咱們的請求模擬瀏覽器的行爲,防止被網站的反爬蟲策略限制。今天要介紹的 Selenium 是一款強大的工具,它能夠控制咱們的瀏覽器,這樣一來程序的行爲就和人類徹底同樣了。python
經過使用 Selenium 能夠解決幾個問題:web
pip install selenium
chrome
驅動下載地址瀏覽器
下載後把驅動文件加入環境變量。或者直接把驅動文件和 Python腳本放到同一文件夾下面工具
測試
安裝完成後,能夠編寫如下腳原本測試是否安裝成功。學習
from selenium import webdriver driver = webdriver.Chrome() # 建立一個 Chrome WebDriver 實例 driver.get('https://www.baidu.com/') # 打開網址
運行後會發現程序自動打開了 Chrome 瀏覽器,而且定向到了百度首頁。測試
與頁面交互
WebDriver定義了不少方法,咱們能夠很方便的操做頁面上的元素
好比獲取元素,能夠經過 driver.find_element_by_id("id")
或者driver.find_element_by_name("name")
以及 xpath路徑的方式來獲取元素。能夠經過send_keys 向輸入框中寫入文本。網站
from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.baidu.com/') search_input = driver.find_element_by_id("kw") # 獲取到百度搜索框 search_input.send_keys("劉亦菲") # 自動輸入 劉亦菲 submit = driver.find_element_by_id("su") # 獲取到百度一下按鈕 submit.click() # 點擊搜索
運行以上腳本,程序會自動打開 Chrome 瀏覽器,並自動搜索 劉亦菲google
具體能夠看官方文檔,這裏貼一下地址
https://selenium-python-zh.readthedocs.io/en/latest/index.html