Python爬蟲教程-28-Selenium 操縱 Chrome

來源:互聯網
上載者:User

標籤: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.