Python爬蟲教程-26-Selenium + PhantomJS
阿新 • • 發佈:2018-09-06
code scrip class 變換 打印 ESS 情況 block font
- 本筆記不允許任何個人和組織轉載
Python爬蟲教程-26-Selenium + PhantomJS
- 動態前端頁面 :
- JavaScript:
JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給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(標準通用標記語言的子集)。
Ajax 是一種用於創建快速動態網頁的技術。
Ajax 是一種在無需重新加載整個網頁的情況下,能夠更新部分網頁的技術。
通過在後臺與服務器進行 - DHTML:
DHTML是Dynamic HTML的簡稱,就是動態的html(標準通用標記語言下的一個應用),是相對傳統的靜態的html而言的一種制作網頁的概念。所謂動態HTML(Dynamic HTML,簡稱DHTML),其實並不是一門新的語言,它只是HTML、CSS和客戶端腳本的一種集成,即一個頁面中包括html+css+javascript(或其它客戶端腳本),其中css和客戶端腳本是直接在頁面上寫而不是鏈接上相關文件。DHTML不是一種技術、標準或規範,只是一種將目前已有的網頁技術、語言標準整合運用,制作出能在下載後仍然能實時變換頁面元素效果的網頁設計概念
- JavaScript:
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 webdriver
import 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