成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

分享抓取網(wǎng)頁截圖的一些心得

trigkit4 / 3226人閱讀

摘要:最近因為一個活兒所以要完成抓取網(wǎng)頁截圖這個需求,我研究了幾個工具,就向大家分享一下我們的方案了。第二個方案方案分析理由是支持各個平臺的,而且用起來很方便。

 最近因為一個活兒所以要完成抓取網(wǎng)頁截圖這個需求,我研究了幾個工具,就向大家分享一下我們的方案了。假如有什么錯誤和更好的提議,歡迎拍磚。

 因為支付寶已經(jīng)做過類似的功能,所以我就咨詢了@天材他們的方案,感謝他提供了寶貴的資料作參考。

第一個方案:(直接用命令截圖,再用ImageMagic裁剪)
偽代碼如下:
?(1)截圖指令[ " + "xvfb-run.sh --auto-servernum CutyCapt --delay=" + delay+ " --max-wait=" + maxWait + " --url=" + url + " --out=" + filePath + "]
(2)截取指定圖片指定大小指令[" + "convertcrop " + cutWidth + "x" + cutHight + "+" + cutStartX + "+" + cutStartY + " " + filePath + " " + filePath + "]

但我覺得第一個方案似乎有點別扭,而且截圖的命令也不知道能不能支持多個平臺(因為公司只配置了一臺筆記本給我,win系統(tǒng)的),所以我就去探討另外一個方案。

第二個方案:(PhantomJs + NodeJs + ImageMagick)
方案分析:

理由?:
PhantomJs是支持各個平臺的,而且用起來很方便。細心的同學可以看到它安裝的腳本,是會根據(jù)不同平臺下載不同的版本。

if (process.platform === "linux" && process.arch === "x64") {
  downloadUrl += "linux-x86_64.tar.bz2"
} else if (process.platform === "linux") {
  downloadUrl += "linux-i686.tar.bz2"
} else if (process.platform === "darwin") {
  downloadUrl += "macosx.zip"
} else if (process.platform === "win32") {
  downloadUrl += "windows.zip"
} else {
  console.log("Unexpected platform or architecture:", process.platform, process.arch)
  exit(1)
}

?步驟和注意點:
?[ 1 ] 安裝phantomjs

npm install [email protected]

這個版本比較穩(wěn)定,最好不要下最新版本,我之前弄了好久都安裝不成功,就上github看里面的Issue,作者也建議安裝1.9.2-1(特別在win下)
?[ 2 ] 安裝ImageMagic和gm模塊
?根據(jù)作者描述GraphicsMagick and ImageMagick for node,所以使用gm的時候注意設(shè)置是ImageMagick的模式。

var gm = require("gm").subClass({ imageMagick: true });

?使用方法:(里面的鏈接都有詳細解釋,我就不展開了)
?{1}phantomjs模塊的使用方法: https://www.npmjs.org/package/phantomjs
?{2}phantomjs的API: http://phantomjs.org/
?{3}gm模塊的使用方法: https://www.npmjs.org/package/gm

性能測試:
?本機:
CPU:i5-3230M 2.60GHz
內(nèi)存:?8G
?截圖淘寶首頁花費時間:20.0+秒 (山窮水盡疑無路)

?服務(wù)器:
?CPU:16 Intel(R) Xeon(R) CPU L5630 @ 2.13GHz
?內(nèi)存:49552672K(約等于47.25G)
??截圖淘寶首頁花費時間:1.0+秒 (柳暗花明又一村)

?

?第三個方案:(使用webkit2png工具)
?今天剛剛好跟一位騰訊的小伙伴聊天,剛剛好聊起這事兒,他也剛剛好做了跟我相似的東西,但他使用的是webkit2png,所以就互相交流一下了。他是使用webkit2png的,webkit2png是一個命令行工具,其實跟phantomjs也很類似,我查了下也是支持各個平臺的。
@TQ博客: http://targetkiller.net/preview-mac-in-win/
具體請移步到文檔:http://www.paulhammond.org/webkit2png/

微博:@任重致遠-MR梁廣彬
英文名:jambinliang
花名:無惟

2014/2/23

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78016.html

相關(guān)文章

  • NodeJs爬蟲抓取古代典籍,共計16000個頁面心得體會總結(jié)及項目分享

    摘要:目前這個爬蟲還是比較簡單的類型的,直接抓取頁面,然后在頁面中提取數(shù)據(jù),保存數(shù)據(jù)到數(shù)據(jù)庫??偨Y(jié)寫這個項目其實主要的難點在于程序穩(wěn)定性的控制,容錯機制的設(shè)置,以及錯誤的記錄,目前這個項目基本能夠?qū)崿F(xiàn)直接運行一次性跑通整個流程。 前言 之前研究數(shù)據(jù),零零散散的寫過一些數(shù)據(jù)抓取的爬蟲,不過寫的比較隨意。有很多地方現(xiàn)在看起來并不是很合理 這段時間比較閑,本來是想給之前的項目做重構(gòu)的。后來 利用這...

    legendmohe 評論0 收藏0
  • 如何用Python抓抖音上小姐姐

    摘要:比如分鐘破譯朋友圈測試小游戲文章里用的方法但有些根本就沒有提供網(wǎng)頁端,比如今年火得不行的抖音。所以常用的方式就是通過在電腦上裝一些抓包軟件,將手機上的網(wǎng)絡(luò)請求全部顯示出來??偨Y(jié)下,重點是的抓取,關(guān)鍵是配置代理證書,難點是對請求的分析。 爬蟲的案例我們已講得太多。不過幾乎都是 網(wǎng)頁爬蟲 。即使有些手機才能訪問的網(wǎng)站,我們也可以通過 Chrome 開發(fā)者工具 的 手機模擬 功能來訪問,以便...

    FingerLiu 評論0 收藏0
  • Puppeteer 初探

    摘要:獲取獲取上下文句柄執(zhí)行計算銷毀句柄除此之外,還可以使用意為在瀏覽器環(huán)境執(zhí)行腳本,可傳入第二個參數(shù)作為句柄,而則針對選中的一個元素執(zhí)行操作。 我們?nèi)粘J褂脼g覽器或者說是有頭瀏覽器時的步驟為:啟動瀏覽器、打開一個網(wǎng)頁、進行交互。 無頭瀏覽器指的是我們使用腳本來執(zhí)行以上過程的瀏覽器,能模擬真實的瀏覽器使用場景。 有了無頭瀏覽器,我們就能做包括但不限于以下事情: 對網(wǎng)頁進行截圖保存為圖片或 ...

    appetizerio 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<