Crawler参数手册
如果你想修改一些默认值,可以在构造 Crawler()
的时候配置相关的参数,此时的参数将在全局范围内生效。如果你只想对单个请求配置独立的参数,你可以在调用 queue()
函数时覆盖参数。
Crawler
使用了 request
库,所以 Crawler
可供配置的参数列表是 request
库的参数列表的超集,即 request
库中所有的配置在 Crawler
中均适用。
以下为所有参数:
基本请求参数
回调函数
callback(error, res, done)
: 请求完成后将被调用的回调函数error
: Error 错误信息res
: http.IncomingMessage 服务器响应的数据资源合集res.statusCode
: Number HTTP状态码,正常返回200
res.body
: Buffer | String HTTP响应实体部分res.headers
: Object HTTP响应头部res.request
: RequestRequest
的一个实例(并非 http.ClientRequest)res.options
: Options 此次请求的参数$
: jQuery Selector HTML或XML文档的jQuery选择器
done
: Function 在处理结束之后必须调用此函数
调度参数
maxConnections
: Number 工作线程池的大小 (默认为 10).rateLimit
: Number 两次请求之间的默认间隔时间 (默认为 0).priorityRange
: Number 有效的优先值范围,从0开始 (默认为 10).priority
: Number 请求的默认优先值 (默认为 5). 此值越低优先度越高。
重试参数
追踪重定向
followRedirect
: Boolean 遵循HTTP 3xx响应作为重定向(默认:true)。此属性也可以实现为函数,该函数将响应对象作为单个参数获取,如果需要继续重定向,则返回true,否则返回false。 (默认为 true),followAllRedirects
: Boolean 遵循non-get HTTP 3xx响应作为重定向 (默认为 false).- maxRedirects: Number 要追踪的最大重定向数(默认值:10)
DOM选项
jQuery
: Boolean|String|Object 设置为true或者”cheerio”时,将使用cheerio
作为解析器,并使用默认配置. 当然你也可以使用自定义配置的cheerio
或使用符合 Parser options 的其它解析器。如果此值为false,将禁用注入jQuery选择器。 注意,如果你发现项目存在内存泄漏问题,请使用 “whacko” 作为解析器来避免这个问题你, “whacko” 是一个可以用来代替的解析器。 (默认为 true)
编码设置
forceUTF8
: Boolean 此值为 true 时,crawler 将会从HTTP头部或者meta标签提取字符编码,并将其强制转换为 UTF8格式。 再也不用为不同编码的问题操心了! (默认为 true),incomingEncoding
: String 一般和forceUTF8一起使用,设定此值将可以手动指定待转换的字符编码(默认为 null)。可以像这么使用:incomingEncoding : 'windows-1255'
。这里是支持的所有编码
缓存设置
skipDuplicates
: Boolean 此值为 true 时,将跳过已经爬取的URI,且不会调用callback() (默认为 false)。 这不是推荐做法,更好的做法是在Crawler
之外使用 seenreq 处理。
其他
rotateUA
: Boolean 此值为true
时,userAgent
应该是一个UA的Array,此时Crawler将在不同的请求中轮换UA。(默认为 false)userAgent
: String|[Array] 如果rotateUA
为 false, 且userAgent
为 array, crawler 将使用array中的第一个UA。referer
: String 设定此值将可以修改HTTP referer headerqueue(uri, options)
: 将任务加入队列,并等待其被执行queueSize
: Number 当前队列长度,只读。
Crawler模块 https://github.com/bda-research/node-crawler
下面的参数都可使用,可参考 https://github.com/request/request
0 |
var requestArgs = ['uri','url','qs','method','headers','body','form','formData','json','multipart','followRedirect','followAllRedirects', 'maxRedirects','encoding','pool','timeout','proxy','auth','oauth','strictSSL','jar','aws','gzip','time','tunnel','proxyHeaderWhiteList','proxyHeaderExclusiveList','localAddress','forever', 'agent']; |