Python爬蟲教程-26-Selenium + PhantomJS

來源:互聯網
上載者:User

標籤:配置   windows   cond   設計   down   封裝   概念   pychar   地址   

Python爬蟲教程-26-Selenium + PhantomJS
  • 動態前端頁面 :
    • JavaScript:
      JavaScript一種直譯式指令碼語言,是一種動態類型、弱類型、基於原型的語言,內建支援類型。它的解譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於用戶端的指令碼語言,最早是在HTML(標準通用標記語言 (SGML)下的一個應用)網頁上使用,用來給HTML網頁增加動態功能
    • jQuery:
      jQuery是一個快速、簡潔的JavaScript架構,是繼Prototype之後又一個優秀的JavaScript程式碼程式庫(或JavaScript架構)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,最佳化HTML文檔操作、事件處理、動畫設計和Ajax互動
    • ajax:
      Ajax 即“Asynchronous Javascript And XML”(非同步 JavaScript 和 XML),是指一種建立互動式網頁應用的網頁開發技術。
      Ajax = 非同步 JavaScript 和 XML(標準通用標記語言 (SGML)的子集)。
      Ajax 是一種用於建立快速動態網頁的技術。
      Ajax 是一種在無需重新載入整個網頁的情況下,能夠更新部分網頁的技術。
      通過在後台與伺服器進行
    • DHTML:
      DHTML是Dynamic HTML的簡稱,就是動態html(標準通用標記語言 (SGML)下的一個應用),是相對傳統的靜態html而言的一種製作網頁的概念。所謂動態HTML(Dynamic HTML,簡稱DHTML),其實並不是一門新的語言,它只是HTML、CSS和用戶端指令碼的一種整合,即一個頁面中包括html+css+javascript(或其它用戶端指令碼),其中css和用戶端指令碼是直接在頁面上寫而不是連結上相關檔案。DHTML不是一種技術、標準或規範,只是一種將目前已有的網頁技術、語言標準整合運用,製作出能在下載後仍然能即時變換頁面元素效果的網頁設計概念
Python 採集動態資料
  • 從 JavaScript 代碼入手採集
  • Python 第三方庫運行 JavaScript,直接採集你在瀏覽器看到的頁面
Selenium + PhantomJS
  • Selenium:web 自動化測試載入器
  • Selenium 官方文檔:https://www.seleniumhq.org/docs/
  • Selenium 的功能:
  • 1.自動載入頁面
  • 2.擷取資料
  • 3.截屏
  • PhantomJS:基於 Webkit 的無介面瀏覽器
    • 由 Selenium 操作 PhantomJS
Selenium 的安裝
  • 如果使用的是 Anaconda:
    • 進入當前環境:(我的環境名為learn,如果只有一個base環境,忽略此步)

      activate learn

    • 安裝 selenium

      conda install selenium

  • 當然也可以直接在 Pycharm 進行安裝
    • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【selenium】>【install】
    • 具體操作:

PhantomJS 的安裝
  • :http://phantomjs.org/download.html
  • 根據自己作業系統版本下載,解壓即可用
Selenium 的使用
  • Selenium 庫有一個 WebDriver 的 API
  • WebDriver 可以跟頁面上的元素進行各種互動,用它可以來進行爬取
  • 注意:使用 PhantomJS 時自動按照環境變數尋找相應瀏覽器,如果沒有配置環境變數就將路徑作為參數
  • 案例代碼28dhtml.py檔案:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py28dhtml.py
# Selenium 的使用# 通過 WebDriver 操作百度進行尋找from selenium import webdriverimport time# 通過 Keys 類比鍵盤# 也就是放入需要輸入的東西,就不用鍵盤輸入了from selenium.webdriver.common.keys import Keys# 操作哪個瀏覽器就對哪個瀏覽器建立一個執行個體,這裡是 PhantomJS# 自動按照環境變數尋找相應瀏覽器,如果沒有配置環境變數就將路徑作為參數driver = webdriver.PhantomJS(executable_path=r"D:\app\phantomjs-2.1.1-windows\bin\phantomjs.exe")driver.get("http://www.baidu.com")# 通過函數尋找 title 標籤print("Title: {0}".format(driver.title))
運行結果

注意:如果沒有配置環境變數就將自己的路徑作為參數

紅字不是出錯,列印 title 成功才算使用成功

- 本筆記不允許任何個人和組織轉載

Python爬蟲教程-26-Selenium + PhantomJS

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.