Python 爬蟲利器 Selenium 介紹

Python 爬蟲利器 Selenium 介紹

https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kwhtml

 

前面幾節,咱們學習了用 requests 構造頁面請求來爬取靜態網頁中的信息以及經過 requests 構造 Ajax 請求直接獲取返回的 JSON 信息。python

 

能夠點擊連接查看:web

Python爬蟲——Python崗位分析報告chrome

Python 爬蟲入門(二)——爬取妹子圖瀏覽器

 

還記得前幾節,咱們在構造請求時會給請求加上瀏覽器 headers,目的就是爲了讓咱們的請求模擬瀏覽器的行爲,防止被網站的反爬蟲策略限制。今天要介紹的 Selenium 是一款強大的工具,它能夠控制咱們的瀏覽器,這樣一來程序的行爲就和人類徹底同樣了。工具

 

經過使用 Selenium 能夠解決幾個問題:學習

 

  • 頁面內容是由 JavaScript 動態生成,經過 requests 請求頁面沒法獲取內容。測試

  • 爬蟲程序被反爬蟲策略限制網站

  • 讓程序的行爲和人同樣google

 

安裝

 

pip install selenium

 

安裝瀏覽器驅動

 

驅動下載地址https://sites.google.com/a/chromium.org/chromedriver/downloads

 

下載後把驅動文件加入環境變量。或者直接把驅動文件和 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 瀏覽器,並自動搜索 劉亦菲

 

其餘操做

 

Selenium 能夠進行各類各樣的操做,使程序徹底符合人類的操做習慣。下面看一下還有哪些功能。

 

 

 

 

具體能夠看官方文檔,這裏貼一下地址

https://selenium-python-zh.readthedocs.io/en/latest/index.html

相關文章
相關標籤/搜索