Python爬蟲利器之PhantomJS的用法
前言
大家有沒有發現之前我們寫的爬蟲都有一個共性,就是隻能爬取單純的html程式碼,如果頁面是JS渲染的該怎麼辦呢?如果我們單純去分析一個個後臺的請求,手動去摸索JS渲染的到的一些結果,那簡直沒天理了。所以,我們需要有一些好用的工具來幫助我們像瀏覽器一樣渲染JS處理的頁面。
其中有一個比較常用的工具,那就是
Full web stack No browser required
PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast andnative support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
PhantomJS是一個無介面的,可指令碼程式設計的WebKit瀏覽器引擎。它原生支援多種web 標準:DOM 操作,CSS選擇器,JSON,Canvas 以及SVG。
好,接下來我們就一起來了解一下這個神奇好用的庫的用法吧。
安裝
PhantomJS安裝方法有兩種,一種是下載原始碼之後自己來編譯,另一種是直接下載編譯好的二進位制檔案。然而自己編譯需要的時間太長,而且需要挺多的磁碟空間。官方推薦直接下載二進位制檔案然後安裝。
大家可以依照自己的開發平臺選擇不同的包進行下載
當然如果你不嫌麻煩,可以選擇
然後自己編譯。
目前(2016/3/21)最新發行版本是 v2.1,
安裝完成之後命令列輸入
1 | phantomjs-v |
如果正常顯示版本號,那麼證明安裝成功了。如果提示錯誤,那麼請重新安裝。
本文介紹大部分內容來自於官方文件,博主對其進行了整理,學習更多請參考
快速開始
第一個程式
第一個程式當然是Hello World,新建一個 js 檔案。命名為 helloworld.js
JavaScript1 2 | console.log('Hello, world!'); phantom.exit(); |
命令列輸入
1 | phantomjs helloworld.js |
程式輸出了 Hello,world!程式第二句話終止了 phantom 的執行。
注意:phantom.exit();
這句話非常重要,否則程式將永遠不會終止。
頁面載入
可以利用 phantom 來實現頁面的載入,下面的例子實現了頁面的載入並將頁面儲存為一張圖片。
JavaScript1 2 3 4 5 6 7 8 | varpage=require('webpage').create(); page.open('http://cuiqingcai.com',function(status){ console.log("Status: "+status); if(status==="success"){ page.render('example.png'); } phantom.exit(); }); |
首先建立了一個webpage物件,然後載入本站點主頁,判斷響應狀態,如果成功,那麼儲存截圖為 example.png
以上程式碼命名為 pageload.js,命令列
1 | phantomjs pageload.js |
發現執行成功,然後目錄下多了一張圖片,example.png
因為這個 render 方法,phantom 經常會用到網頁截圖的功能。
測試頁面載入速度
下面這個例子計算了一個頁面的載入速度,同時還用到了命令列傳參的特性。新建檔案儲存為 loadspeed.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
varpage=require('webpage').create(),
system=require(
相關推薦Python爬蟲利器之PhantomJS的用法前言 大家有沒有發現之前我們寫的爬蟲都有一個共性,就是隻能爬取單純的html程式碼,如果頁面是JS渲染的該怎麼辦呢?如果我們單純去分析一個個後臺的請求,手動去摸索JS渲染的到的一些結果,那簡直沒天理了。所以,我們需要有一些好用的工具來幫助我們像瀏覽器一樣渲染JS Python爬蟲利器Selenium+PhantomJS系列入門簡介 一直以來我們在使用Python的urllib2、httplib等通訊框架來抓取網頁,但是涉及到JavaScript渲染的頁面卻不能抓取,所以採用Web自動化測試工具Selenium,無介面瀏覽器PhantomJS來抓取JavaScript渲染的頁面,帶我 Python爬蟲利器三之Xpath語法與lxml庫的用法blank color idt tab 一段 並且 .text rst 基本用法 前面我們介紹了 BeautifulSoup 的用法,這個已經是非常強大的庫了,不過還有一些比較流行的解析庫,例如 lxml,使用的是 Xpath 語法,同樣是效率比較高的解析方法。如果大家 Python爬蟲利器一之Requests庫的用法前言 之前我們用了 urllib 庫,這個作為入門的工具還是不錯的,對了解一些爬蟲的基本理念,掌握爬蟲爬取的流程有所幫助。入門之後,我們就需要學習一些更加高階的內容和工具來方便我們的爬取。那麼這一節來簡單介紹一下 requests 庫的基本用法。 注:Py Python爬蟲利器五之Selenium的用法Selenium 是什麼?一句話,自動化測試工具。它支援各種瀏覽器,包括 Chrome,Safari,Firefox 等主流介面式瀏覽器,如果你在這些瀏覽器裡面安裝一個 Selenium 的外掛,那麼便可以方便地實現Web介面的測試。換句話說叫 Seleni Python 爬蟲利器 Beautiful Soup 4 之文件樹的搜尋前面兩篇介紹的是 Beautiful Soup 4 的基本物件型別和文件樹的遍歷, 本篇介紹 Beautiful Soup 4 的文件搜尋 搜尋文件樹主要使用兩個方法 find() 和 find_all() find_all(): find_all 是用於搜尋節 Python爬蟲Selenium和PhantomJS系列之十三1,Selenium Selenium是一個Web的自動化測試工具,最初是為網站自動化測試而開發的,型別像我們玩遊戲用的按鍵精靈,可以按指定的命令自動操作,不同是Selenium 可以直接執行在瀏覽器上,它支援所有主流的瀏覽器(包括PhantomJS這些無介面 Python爬蟲利器:BeautifulSoup庫環境 內容 python網絡 tag ret bsp 標準 requests for Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. Beautif 2017.08.10 Python爬蟲實戰之爬蟲攻防ebs 1-1 間隔 ima pic setting fin 數據 del 1.創建一般的爬蟲:一般來說,小於100次訪問的爬蟲都無須為此擔心 (1)以爬取美劇天堂為例,來源網頁:http://www.meijutt.com/new100.html,項目準備: scrapy 2017.08.10 Python爬蟲實戰之爬蟲攻防篇5.1 inux ice 一個 1.0 ninja 多網站 alt bject 1.封鎖user-agent破解: user-agent是瀏覽器的身份標識,網站就是通過user-agent來確定瀏覽器類型的。有很多網站會拒絕不符合一定標準的user-agent請求網頁,如果 Python爬蟲常用之登錄(一) 思想訪問 size 其他 驗證碼 方法 身份驗證 一定的 常用 加密 爬蟲主要目的是獲取數據,常見的數據可以直接訪問網頁或者抓包獲取,然後再解析即可. 一些較為隱私的數據則不會讓遊客身份的訪問者隨便看到,這個時候便需要登錄獲取. 一般獲取數據需要的是登錄後的cookie作為身份 python爬蟲學習之路-遇錯筆記-1sig packages ror caused 技術 bsp img exception mage 當在編寫爬蟲時同時開啟了Fidder解析工具時,訪問目標站點會遇到以下錯誤: File "C:\Users\litao\AppData\Local\Programs\P python爬蟲scrapy之如何同時執行多個scrapy爬行任務還需 學習 lis 參數 文件名 其中 .project 自定義 com 背景: 剛開始學習scrapy爬蟲框架的時候,就在想如果我在服務器上執行一個爬蟲任務的話,還說的過去。但是我不能每個爬蟲任務就新建一個項目吧。例如我建立了一個知乎的爬行任務,但是我在這個爬行任務中 Python爬蟲利器:Beautiful Soup處理 previous tag 得到 navi log 簡單 文本節點 pen Beautiful Soup 是一個可以從HTML或XML文件中提取數據的Python庫。使用它來處理HTML頁面就像JavaScript代碼操作HTML DOM樹一樣方便。官方中文文檔地址 1 python爬蟲scrapy之rules的基本使用highlight 目的 創建 true ans 滿足 topic hole auth Link Extractors Link Extractors 是那些目的僅僅是從網頁(scrapy.http.Response 對象)中抽取最終將會被follow鏈接的對象? Scra C# 網絡爬蟲利器之Html Agility Pack如何快速實現解析Htmlmlp get 設計 navig send 介紹 sca 元素 對象 簡介 現在越來越多的場景需要我們使用網絡爬蟲,抓取相關數據便於我們使用,今天我們要講的主角Html Agility Pack是在爬取的過程當中,能夠高效的解析我們抓取到的html數據。 優勢 在. python 爬蟲入門之正則表達式 一簡單 換行 find www. ever page oct search utf python 正則表達式知識點正則 常用符號. : 匹配任意字符,換行符除外* : 匹配前一個字符 0 次或者無限次? : 匹配前一個字符 0次或者1次.* : 貪心算法.*? :非貪心算 Python爬蟲-urllib的基本用法quest resp lan roc 用法 rom handler baidu github from urllib import response,request,parse,error from http import cookiejar if __name__ Python 爬蟲入門之爬取妹子圖Python 爬蟲入門之爬取妹子圖 來源:李英傑 連結: https://segmentfault.com/a/1190000015798452 聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。 GitHub 地址:& Python 爬蟲開發之xpath使用在進行爬蟲開發中,需要的頁面資訊進行解析處理,獲取到需要的關鍵資料。可以利用xpath進行對頁面的xml檔案進行解析處理,獲取到需要的關鍵資料。XPath使用:XPath 可用來在 XML 文件中對元素和屬性進行遍歷.from lxml import etreeimport urllib2req = urll |