麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

NodeJS的url截取模塊url-extract的使用實(shí)例

2019-11-20 21:40:31
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

上次介紹了怎么利用NodeJS + PhantomJS進(jìn)行截圖,但由于對(duì)每次截圖操作,都啟用了一個(gè)PhantomJS進(jìn)程,所以并發(fā)量上去后,效率堪憂,所以我們重寫(xiě)了所有代碼,并將其獨(dú)立成為一個(gè)模塊,方便調(diào)用。
如何改進(jìn)?控制線程數(shù),以及單線程處理url數(shù)量。使用Standard Output & WebSocket 進(jìn)行通訊。添加緩存機(jī)制,目前使用Javascript Object進(jìn)行。對(duì)外提供簡(jiǎn)易的接口。

設(shè)計(jì)圖

 

依賴(lài) & 安裝

由于PhantomJS 1.9.0+才開(kāi)始支持Websocket,所以我們先要確定在PATH中的PhantomJS是為1.9.0以上版本。在命令行鍵入:

$ phantomjs -v

如果能返回版本號(hào)1.9.x,則可以繼續(xù)操作。如果版本過(guò)低,或者出現(xiàn)錯(cuò)誤,請(qǐng)到PhantomJS官網(wǎng)下載最新版本。

如果你已經(jīng)安裝了Git,或者擁有Git Shell,那么在命令行鍵入:
$ npm install url-extract

進(jìn)行安裝。

一個(gè)簡(jiǎn)單的例子

比如我們要截取百度首頁(yè),那么可以這樣:

復(fù)制代碼 代碼如下:
module.exports = (function () { "use strict" var urlExtract = require('url-extract'); urlExtract.snapshot('http://www.baidu.com', function (job) { console.log('This is a snapshot example.'); console.log(job); process.exit(); }); })();

下面是打印:

其中,image屬性就是截圖相對(duì)于工作路徑的地址。我們可以使用Job的getData接口來(lái)得到更清楚的數(shù)據(jù),例如:

復(fù)制代碼 代碼如下:
module.exports = (function () { "use strict" var urlExtract = require('url-extract'); urlExtract.snapshot('http://www.baidu.com', function (job) { console.log('This is a snapshot example.'); console.log(job.getData()); process.exit(); }); })();

打印就變成了這樣了:

image表示截圖相對(duì)于工作路徑的地址,status表示狀態(tài)是否正常,true代表正常,false代表截圖失敗。

更多例子請(qǐng)參見(jiàn):https://github.com/miniflycn/url-extract/tree/master/examples

 

主要API

.snapshot

url快照

.snapshot(url, [callback]).snapshot(urls, [callback]).snapshot(url, [option]).snapshot(urls, [option])
復(fù)制代碼 代碼如下:
url {String} 要截取的地址 urls {Array} 要截取的地址數(shù)組 callback {Function} 回調(diào)函數(shù) option {Object} 可選參數(shù) ┝ id {String} 自定義url的id,如果第一個(gè)參數(shù)是urls,此參數(shù)無(wú)效 ┝ image {String} 自定義截圖的保存地址,如果第一個(gè)參數(shù)是urls,此參數(shù)無(wú)效 ┝ groupId {String} 定義一組url的groupId,用于返回時(shí)候辨認(rèn)是哪一組url ┝ ignoreCache {Boolean} 是否忽略緩存 ┗ callback {Function} 回調(diào)函數(shù)

.extract

url信息抓取,并獲取快照

.extract(url, [callback]).extract(urls, [callback]).extract(url, [option]).extract(urls, [option])

url {String} 要截取的地址

urls {Array} 要截取的地址數(shù)組

callback {Function} 回調(diào)函數(shù)

option {Object} 可選參數(shù)

┝ id {String} 自定義url的id,如果第一個(gè)參數(shù)是urls,此參數(shù)無(wú)效

┝ image {String} 自定義截圖的保存地址,如果第一個(gè)參數(shù)是urls,此參數(shù)無(wú)效

┝ groupId {String} 定義一組url的groupId,用于返回時(shí)候辨認(rèn)是哪一組url

┝ ignoreCache {Boolean} 是否忽略緩存

┗ callback {Function} 回調(diào)函數(shù)

Job(類(lèi))

每一個(gè)url對(duì)應(yīng)一個(gè)job對(duì)象,url的相關(guān)信息由job對(duì)象存儲(chǔ)。

Field

url {String} 鏈接地址content {Boolean} 是否抓取頁(yè)面的title和description信息id {String} job的idgroupId {String} 一堆job的組idcache {Boolean} 是否開(kāi)啟緩存callback {Function} 回調(diào)函數(shù)image {String} 圖片地址status {Boolean} job當(dāng)前是否正常

Prototype

getData() 獲取job的相關(guān)數(shù)據(jù)

 

全局配置

url-extract根目錄中的config文件可以進(jìn)行全局配置,默認(rèn)如下:

module.exports = { wsPort: 3001, maxJob: 100, maxQueueJob: 400, cache: 'object', maxCache: 10000, workerNum: 0};
wsPort {Number} websocket占用的端口地址maxJob {Number} 每個(gè)PhantomJS線程可并發(fā)worker數(shù)maxQueueJob {Number} 最大等待工作數(shù)量,0表示不限制,超過(guò)該數(shù)量,任何工作都直接返回失敗(即status = false)cache {String} 緩存實(shí)現(xiàn),目前只有object實(shí)現(xiàn)maxCache {Number} 最大緩存鏈接數(shù)workerNum {Number} PhantomJS線程數(shù),0表示和CPU數(shù)量相同

 

一個(gè)簡(jiǎn)單的服務(wù)例子

https://github.com/miniflycn/url-extract-server-example

注意,需要安裝connect和url-extract:

$ npm install

如果你下載了網(wǎng)盤(pán)的文件,那么請(qǐng)安裝connect:

$ npm install connect

然后鍵入:

$ node bin/server

打開(kāi):

http://localhost:3000

查看效果。

 

;

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久精品视频亚洲 | 久国产 | 亚洲欧美成aⅴ人在线观看 免费看欧美黑人毛片 | 国产九九九九 | 亚洲国产精品久久久久婷婷老年 | 美国一级黄色毛片 | 曰批全过程40分钟免费视频多人 | 91美女视频在线观看 | v11av在线播放 | 日本欧美一区二区三区在线播 | 9999在线视频| 精品一区二区免费视频视频 | 日韩av片网站 | 久草在线手机视频 | 天天干天天透 | 性爱网站 | 999精品国产 | 国产成人精品免费视频大全办公室 | 美女wc| 欧美一级片免费在线观看 | 模特三级在线观看 | 91一区二区在线观看 | 草草视频免费观看 | 久草在线播放视频 | 72pao成人国产永久免费视频 | 日本aaaa片毛片免费观蜜桃 | 亚洲午夜在线观看 | 久久国产精品区 | 精品国产一区二区三区在线观看 | 欧美a在线 | 国外成人在线视频 | 一级全毛片 | 黄色试看视频 | 中文日韩在线视频 | 一级黄色片武则天 | 成熟女人特级毛片www免费 | 极品销魂一区二区三区 | 欧美一区二区三区免费观看 | 久草在线视频首页 | 精品偷拍久久 | 综合国产一区 |