標籤:elements 代碼 ons hot scree pycharm 取消 頁面 搜尋
我覺得本篇是很有意思的,閑著沒事來看看!
Python爬蟲教程-28-Selenium 操縱 Chrome
PhantomJS 幽靈瀏覽器,無介面瀏覽器,不渲染頁面。Selenium + PhantomJS 在之前是很完美的搭配。後來在 2017 年 Google 宣布 Chrome 也宣布支援不渲染。所以 PhantomJS 使用的人就越來越少了,挺可惜,本篇介紹 Selenium + Chrome
安裝Chrome瀏覽器和 Chromedriver
- 安裝 Chrome 瀏覽器就不介紹了
- 安裝 Chromedriver:
- 注意:Chromedriver 需要根據自己的 Chrome 版本下載:
- Chromedriver 所有版本:http://npm.taobao.org/mirrors/chromedriver/
- 相容版本請參照:Chrome版本與chromedriver相容版本對照表
- 下載解壓即可,當然如果你解壓到自己定義的目錄,就需要配置一下環境,去環境變數,在 Path 加一條 Chromedriver 的安裝目錄
- 如果你嫌配置環境變數太麻煩,就直接把它放到一個已經配置好環境變數的目錄,比如 C:\Program Files (x86)
安裝 Chromedriver-binary 包
- 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【BeautifulSoup4】>【install】
- 具體操作:
安裝好就可以盡情使用了
Selenium 操作
- Selenium 操作主要分兩大類:
- 得到 UI 元素
- find_element_by_id
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
- 基於 UI 元素操作的類比
- 單擊
- 右鍵
- 拖拽
- 輸入
可以通過 ActionsChains類來做到
案例 29chromedriver
- 案例 29chromedriver.py 代碼檔案:
https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py29chromedriver.py
# Selenium + Chrome 案例1from selenium import webdriver# 路徑是自己解壓安裝 Chromedriver 的路徑driver = webdriver.Chrome()url = "http://www.baidu.com"driver.get(url)# 根據id尋找,後面加.text 表示拿看到的文本資料text = driver.find_element_by_id(‘wrapper‘).textprint(text)
運行結果
1.控制台:列印出來了我們想要的能看到的文本
2.我們可以看到:執行程式自動開啟了一個 Chrome 瀏覽器的視窗,並提示 Chrome 正受到自動檢測軟體的控制
此時,既然已經控制了瀏覽器,我們就可以進行更多操作了
重要案例 29chromedriver2.py
- 案例 29chromedriver2.py 代碼檔案:
https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py29chromedriver2.py
# Selenium + Chrome 案例2# 開啟的瀏覽器可能會彈窗,點擊【取消】或者【不管它】都行from selenium import webdriverimport timefrom selenium.webdriver.common.keys import Keys# 預設不需要路徑,如果沒有環境變數就需要加上driver = webdriver.Chrome()url = "http://www.baidu.com"driver.get(url)# 根據id尋找,後面加.text 表示拿看到的文本資料text = driver.find_element_by_id(‘wrapper‘).textprint(driver.title)# 對頁面截屏,儲存為 baidu.pngdriver.save_screenshot(‘py29baidu.png‘)# 控制 Chrome 在輸入框輸入大熊貓driver.find_element_by_id(‘kw‘).send_keys(u"大熊貓")# 單擊搜尋按鈕,id = ‘su‘driver.find_element_by_id(‘su‘).click()# 緩衝5秒,讓頁面載入圖片等time.sleep(5)# 截屏,儲存driver.save_screenshot("py29daxiongmao.png")# 擷取當前頁面的 cookie 常用在需要登入的頁面print(driver.get_cookie(‘cookie‘))# 類比 按下兩個按鍵 Ctrl + adriver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL, ‘a‘)# 類比 按下兩個按鍵 Ctrl + cdriver.find_element_by_id(‘kw‘).send_keys(Keys.CONTROL, ‘c‘)
運行結果
運行代碼,會自動開啟瀏覽器,自動輸入大熊貓,自動截屏並儲存,然後選中輸入框內容,然後拷貝
是不是很神奇,儲存的截屏和代碼同級目錄
拜拜
- 本筆記不允許任何個人和組織轉載
Python爬蟲教程-28-Selenium 操縱 Chrome