使用网址拦截模块的例子
上次我们介绍了如何使用NodeJS PhantomJS进行截图。但是,由于每个截图操作都启用了一个PhantomJS进程,所以在并发性增加后效率堪忧。所以我们把所有的代码都重写了,独立做成一个模块,方便调用。如何提高?控制线程数和单线程处理的URL数。使用标准输出网络套接字进行通信。添加一个缓存机制,目前使用的是Javascript对象。为外界提供一个简单的接口。设计图纸
依赖关系由于PhantomJS 1.9.0才开始支持Websocket,所以我们首先要确保PATH中的PhantomJS高于1.9.0。在命令行中,键入:$ phantomjs -v如果可以返回版本号1.9.x,则可以继续。如果版本太低或有错误,请从PhantomJS官网下载最新版本。如果您已经安装了Git或Git Shell,请在命令行键入:$ npm安装url-extract来安装它。举个简单的例子,如果我们想拦截百度主页,可以这样做:复制代码如下: module . exports=(function(){ ' use strict ' var URL extract=require(' URL-extract ');URL extract . snapshot(' http://www . Baidu.com ',function (job) { console.log('这是一个快照示例。);console.log(作业);process . exit();});})();这是打印件:。
图像属性是截图相对于工作路径的地址。我们可以使用Job的getData接口来获取更清晰的数据,例如复制代码如下: module . exports=(function(){ ' use strict ' var URL extract=require(' URL-extract ');URL extract . snapshot(' http://www . Baidu.com ',function (job) { console.log('这是一个快照示例。);console . log(job . getdata());process . exit();});})();打印是这样的:。
Image表示截图相对于工作路径的地址,status表示状态是否正常,true表示正常,false表示截图失败。见:https://github.com/miniflycn/url-extract/tree/master/examples主原料药。snapshoturl快照。快照(URL,[回调])。快照(网址、[回调])。快照(url,[选项])。快照(url,[option])复制代码如下: url {String}地址截取urls { array }地址数组截取回调{Function}回调函数option {Object}可选参数自定义url的 id {String} id。如果第一个参数是URL,则该参数无效。图片{String}自定义截图的保存地址。如果第一个参数是URL,则该参数无效。组Id {String}定义了一组URL的组Id。用于标识 ignorecache {boolean}在返回时忽略回调函数回调{Function}的哪组URL。提取url信息并进行快照。提取(URL,[回调])。提取(网址,[回调])。提取(网址,[选项])。提取(url,[option]) url {String}地址以拦截urls { array }地址数组以拦截回调{Function}回调函数option {Object}可选参数 id {String}自定义url id,如果第一个参数是url,则此参数是无效的图像{String}。如果第一个参数是URL,则该参数无效。 groupId {String}定义了一组URL的groupId,用于在返回时识别哪组URLignoreche { boolean },是否忽略缓存callback {Function}回调函数作业(类)。Fieldurl {String}链接地址内容{布尔值}是否抓取一堆作业的作业{String}组id缓存的页面{string} id组id的标题和描述信息id {布尔值}。打开缓存回调{Function}回调function image {String}图片地址状态{boolean}作业目前是否正常PrototypegetData()获取作业全局配置URL的相关数据-提取根目录中的配置文件可以全局配置。默认值如下:模块。exports={wsport: 3001,maxjob: 100,maxqueuejob3360 400,cache:' object ',maxcache: 10000,worker num 3360 0 0 };ws {number} WebSocket MaxJob占用的端口地址{ Number }每个PhantomJS线程的并发工作进程数maxQueueJob {Number}等待作业的最大数量,0表示没有限制,超过了这个数量。一切都直接返回失败的(即状态=假)缓存{String}缓存实现。目前,只有对象实现了maxCache {Number}最大缓存链接数,workerNum {Number} PhantomJS线程数。0表示具有相同数量的CPU的简单服务示例。https://github.com/miniflycn/url-extract-server-example:请注意,需要安装连接和网址提取:$ npminstall。如果你下载了网盘的文件,那么安装connect:$ npm安装connect并键入:$ node bin/server打开:http://localhost:3000查看效果。
版权声明:使用网址拦截模块的例子是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。