Python爬蟲教程-26-Selenium + PhantomJS

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不是一種技術、標準或規範,只是一種將目前已有的網頁技術、語言標準整合運用,製做出能在下載後仍然能實時變換頁面元素效果的網頁設計概念

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 learnjavascript

  • 安裝 selenium

conda install seleniumcss

  • 固然也能夠直接在 Pycharm 進行安裝
    • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【selenium】>【install】
    • 具體操做截圖: 這裏寫圖片描述 這裏寫圖片描述

PhantomJS 的安裝

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 成功纔算使用成功html

更多文章連接:Python 爬蟲隨筆

<hr>- 本筆記不容許任何我的和組織轉載前端

相關文章
相關標籤/搜索