(1)domains

定义神箭手应用爬取哪些域名下的网页, 非域名下的网页会被忽略以提高爬取速度。
**数组类型
在神箭手应用的代码中均可使用**

通用栗子1:

var configs = {// 单个域名domains: ["wallstreetcn.com"],// configs的其他成员...
};

通用栗子2:

var configs = {// 多个域名domains: ["zhihu.sogou.com", "zhihu.com"],// configs的其他成员...
};

**注意:
1. 如果代码中设置domains:[]或代码中不包含domains成员, 那么神箭手应用将无法正常运行;
2. 如果代码中设置domains:[“”], 那么domains会匹配所有域名.**

(2)scanUrls

定义神箭手应用的入口页url, 神箭手应用会从入口页url开始爬取数据。
**数组类型
在神箭手应用的代码中均可使用**

通用栗子1:

var configs = {// 单个入口页urlscanUrls: ["http://wallstreetcn.com/"],// configs的其他成员...
};

通用栗子2:

var configs = {// 多个入口页urlscanUrls: ["http://baijia.baidu.com/","http://www.demo.com/"],// configs的其他成员...
};

**注意:
1. scanUrls的上限是1000个, 如果要添加更多入口页url, 请在beforeCrawl等回调函数中调用site.addScanUrl添加;
2. 如果代码中设置scanUrls:[]或scanUrls:[“”]或代码中不包含scanUrls成员, 请在beforeCrawl回调函数中调用site.addScanUrl添加入口页url, 否则, 神箭手应用将无法正常运行.**

(3)contentUrlRegexes

1). 设置内容页url的正则表达式。
2). 内容页是包含需爬取内容的网页, 比如, 这个url(http://www.qiushibaike.com/article/117844937)就是一个内容页url, 可以从中抽取”文章作者”, “文章内容”等数据。

**数组类型
支持JavaScript正则表达式的写法
在采集爬虫代码中可使用**

采集爬虫栗子1:

var configs = {// 写法一contentUrlRegexes: ["http://club2011\\.auto\\.163\\.com/post/\\d+\\.html.*"],// configs的其他成员...
};

采集爬虫栗子2:

var configs = {// 写法二contentUrlRegexes: [/http:\/\/club2011\.auto\.163\.com\/post\/\d+\.html.*/],// configs的其他成员...
};

**注意:
1. 如果代码中设置contentUrlRegexes:[]或代码中不包含contentUrlRegexes成员, 那么待爬队列中的url都会被认定为内容页url;
2. 如果代码中设置contentUrlRegexes:[“”], 那么待爬队列中的url都不会被认定为内容页url;
3. 正则表达式中的.和?都需要转义.**

(4)helperUrlRegexes

1). 设置列表页url的正则表达式。
2). 列表页是包含内容页url的网页, 比如, 这个url(http://www.leiphone.com/search?s=vr&site=article)就是一个列表页url, 可以从中获取”内容页url”等数据。

**数组类型
支持JavaScript正则表达式的写法
在采集爬虫代码中可使用**

采集爬虫栗子1:

var configs = {// 写法一helperUrlRegexes: ["http://wallstreetcn\\.com/news(\\?/page=\\d+)?"],// configs的其他成员...
};

采集爬虫栗子2:

var configs = {// 写法二helperUrlRegexes: [/http:\/\/wallstreetcn\.com\/news(\?\/page=\d+)?/],// configs的其他成员...
};

**注意:
1. 如果代码中设置helperUrlRegexes:[]或代码中不包含helperUrlRegexes成员, 那么待爬队列中的url都会被认定为列表页url;
2. 如果代码中设置helperUrlRegexes:[“”], 那么待爬队列中的url都不会被认定为列表页url.**

(5)fields

1). 定义内容页的抽取规则.
2). 规则由一个或多个field组成, 一个field代表一个抽取项。

数组类型
在神箭手应用的代码中均可使用

通用栗子:
从糗事百科的内容页中抽取文章内容

var configs = {// configs的其他成员...fields: [{// 抽取项名称name: "content",// 抽取项别名, 在神箭手控制台预览该条数据的时候会显示alias: "文章内容",// 抽取该项数据的表达式(默认使用XPath)selector: "//*[@id='single-next-link']"}]
};

注意: 如果代码中设置fields:[]或fields:[“”]或代码中不包含fields成员, 那么神箭手应用将无法正常运行.

(6)interval

1). 设置神箭手应用爬取每个网页的时间间隔. 如果目标网站有屏蔽措施, 设置较长时间间隔可以降低被屏蔽概率
2). 单位: 毫秒

**整型
interval默认值和最小值都是1000(毫秒), 即1秒
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 设置5秒时间间隔interval: 5000,// configs的其他成员...
};

(7)enableJS

1). 设置是否开启自动JS渲染
2). 默认值是false
3). 如果需要开启自动JS渲染, 可设置此项为true, 这样请求scanUrl, helperUrl和contentUrl, 及attachedUrl, site.addUrl和site.addScanUrl时, 都会自动JS渲染.
4). enableJS值为true时, 不会影响手动发送HTTP请求(site.requestUrl)的自动JS渲染; 如需在site.requestUrl时开启自动JS渲染, 请在传入参数options中设置。

**布尔类型
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 开启自动JS渲染enableJS: true,// configs的其他成员...
};

(8)renderTime

1). 表示在自动JS渲染的过程中, 如果在设置的该时间内未发送HTTP请求或加载网页资源, 自动JS渲染会立即停止。
2). 单位: 毫秒。
3). 当enableJS值为true时, 在请求scanUrl, helperUrl和contentUrl, 及attachedUrl, site.addUrl和site.addScanUrl自动JS渲染过程中, 或在请求site.requestUrl时开启自动JS渲染, 都会受到renderTime限制。

**整型
只有当configs成员或options对象的enableJS值为true时, renderTime才生效
renderTime默认值是3000(毫秒), 即3秒, 最大值是10分钟
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 开启自动JS渲染enableJS: true,// 在8秒内未发送HTTP请求或加载网页资源, 自动JS渲染会立即停止renderTime: 8000,// configs的其他成员...
};

(9)timeout

1). 设置下载单个网页或加载网页中每个资源的超时时间.
2). 单位: 毫秒。
3). 无论是否开启自动JS渲染, 请求scanUrl, helperUrl和contentUrl, 及attachedUrl, site.addUrl, site.addScanUrl和site.requestUrl时都会受到timeout限制。
**整型
timeout默认值是5000(毫秒), 即5秒
在神箭手应用的代码中均可使用**

通用栗子1:

var configs = {// 下载单个网页的超时时间是10秒timeout: 10000,// configs的其他成员...
};

通用栗子2:

var configs = {// 加载网页中每个资源的超时时间是10秒timeout: 8000,// 开启自动JS渲染enableJS: true,// configs的其他成员...
};

(10)userAgent

1). 是一种向访问网站提供所使用的浏览器类型, 操作系统及版本等信息的标识.
2). 默认值是UserAgent.Computer, 还可使用UserAgent.Android, UserAgent.iOS和UserAgent.Mobile。
**枚举类型
UserAgent.Android, 使用安卓手机浏览器访问网页
UserAgent.iOS, 使用苹果手机浏览器访问网页
UserAgent.Computer, 使用PC浏览器访问网页
UserAgent.Mobile, 使用移动设备浏览器访问网页, 移动设备包括手机和平板等
userAgent所使用的具体浏览器类型是随机分配的
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 使用安卓手机浏览器访问网页userAgent: UserAgent.Android,// configs的其他成员...
};

(11)changeProxyEveryPage

1). 在神箭手应用中开启代理IP切换之后, 如果当前代理IP过期或者isAntiSpider返回true, 神箭手会切换一次IP. 如果需要在每次爬取不同的网页时都切换一次IP, 可以通过设置该成员为true实现.
2). 默认值是false。
3). 使用条件: 开启代理IP切换。
4). changeProxyEveryPage支持通过site.requestUrl或attachedUrl爬取网页时切换代理IP, 不支持通过site.requestUrl且options中设置enableJS: true(开启自动JS渲染)爬取网页时切换代理IP。
5). 如非必需, 请不要设置此成员的值为true. 因为切换代理IP需要时间, 每次爬取网页都切换代理IP会极大降低爬取速度。
**布尔类型
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 设置每次爬取网页时都切换代理IPchangeProxyEveryPage: true,// configs的其他成员...
};

(12)tryTimes

1). 单个HTTP请求失败时, 可自动重试. 通过tryTimes设置单个HTTP请求的最多重复请求次数.
2). 默认值是0, 0和1都表示单个HTTP请求最多可请求一次。
3). 请求失败的情况包括: “请求过程出现异常(如, 请求超时)”和”请求返回内容为空”。
4). 单个HTTP请求包括请求scanUrl, helperUrl和contentUrl, 及attachedUrl和site.requestUrl。
**整型
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 单个HTTP请求最多可重复请求2次tryTimes: 2,// configs的其他成员...
};

(13)entriesFirst

1). 设置神箭手应用是否优先爬取待爬队列中的scanUrl.
2). 默认值是false, 神箭手应用会按顺序依次爬取待爬队列中的url, 包括helperUrl, contentUrl和scanUrl。
3). entriesFirst值为true时, 神箭手应用会优先爬取待爬队列中的scanUrl, 爬取完成后, 再爬取helperUrl和contentUrl。
**布尔类型
在神箭手应用的代码中均可使用**

通用栗子:

var configs = {// 设置优先爬取"scanUrl"entriesFirst: true,// configs的其他成员...
};

**注意:
1. 默认情况下(entriesFirst: false), 爬虫是根据网页加入待爬队列的先后顺序来处理的. 即先加入待爬队列的网页会先被取出处理;
2. 如果设置entriesFirst: true, 爬虫会优先处理入口页链接, 然后再按先后顺序处理其他网页. 这样做的好处是可以优先爬取网站不同分类的新内容(比如, 新闻类的爬虫, 需要优先爬取不同分类或关键字的新文章, 而不是先把一个分类或关键字的所有文章爬完再处理下一个分类的).**

爬虫技术(03)神箭手爬虫Configs详解相关推荐

  1. python爬虫beautifulsoup爬当当网_Python爬虫包 BeautifulSoup 递归抓取实例详解_python_脚本之家...

    Python爬虫包 BeautifulSoup  递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到 ...

  2. 爬虫技术:携程爬虫阳光问政数据

    爬虫技术:携程爬虫阳光问政数据 携程爬取阳光问帖子:进行了简单的数据存储,数据量共145226条,爬取时间为:3.65小时,实际时间感觉要多于统计时间. 代码如下: import time impor ...

  3. Python爬虫包 BeautifulSoup 递归抓取实例详解

    Python爬虫包 BeautifulSoup 递归抓取实例详解 概要: 爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另 ...

  4. Python爬虫之爬取淘女郎照片示例详解

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ ...

  5. 容器编排技术 -- Kubernetes kubectl rollout resume 命令详解

    容器编排技术 -- Kubernetes kubectl rollout resume 命令详解 1 kubectl rollout resume 2 语法 3 示例 4 Flags kubectl ...

  6. 容器编排技术 -- Kubernetes kubectl rollout undo 命令详解

    容器编排技术 -- Kubernetes kubectl rollout undo 命令详解 1 kubectl rollout undo 2 语法 3 示例 4 Flags kubectl roll ...

  7. 容器编排技术 -- Kubernetes kubectl rollout status 命令详解

    容器编排技术 -- Kubernetes kubectl rollout status 命令详解 1 kubectl rollout status 2 语法 3 示例 4 Flags kubectl ...

  8. 容器编排技术 -- Kubernetes kubectl rollout pause 命令详解

    容器编排技术 -- Kubernetes kubectl rollout pause 命令详解 1 kubectl rollout pause 2 语法 3 示例 4 Flags kubectl ro ...

  9. 容器编排技术 -- Kubernetes kubectl rollout history 命令详解

    容器编排技术 -- Kubernetes kubectl rollout history 命令详解 1 kubectl history 2 语法 3 示例 4 Flags kubectl histor ...

  10. 容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解

    容器编排技术 -- Kubernetes kubectl create clusterrolebinding 命令详解 1 kubectl create clusterrolebinding 2 语法 ...

最新文章

  1. JavaScript 利用location对象实现跨页面传参
  2. 【Leetcode】刷题的开始
  3. shell中(字符串截取)
  4. vysor原理以及Android同屏方案
  5. linux kernel中__setup()函数介绍
  6. WP8.1学习系列(第八章)——透视Pivot设计指南
  7. 51单片机常用寄存器速查
  8. Spring Boot框架敏感信息泄露的完整介绍与SRC实战(附专属字典与PoC)
  9. 统一并发 II——基准测试方法
  10. metal分析是什么意思_变压器原理是什么?容量是什么意思?电力工程技术专家精讲分析...
  11. Android用开源优势超Windows Mobile
  12. md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证...
  13. c#中Split用法总结
  14. 初涉node.js做微信测试公众号一路填坑顺便发现个有趣的其他漏洞
  15. Eclipse调试远程服务器
  16. 软件测试行业发展现状及前景
  17. iexplore.exe - Application Error The instruction at 0x7c0c5a6c references at memory at 0x7c0c5a6c
  18. 利用Mono.Cecil动态修改程序集来破解商业组件
  19. 《富爸爸穷爸爸》读书笔记(1):钱究竟是什么?
  20. 【刷题记录14】Java工程师丨腾讯面试真题(2)

热门文章

  1. 职业生涯规划书高中计算机专业,高中职业生涯规划书生涯规划计算机我的近期目标...
  2. 30行jsoup代码搞定新浪微博登录抓取爬虫
  3. 个人电脑进行AI数据训练需要的硬件配置
  4. 浙江大学【面板数据分析与STATA应用】——第三讲内生性与工具变量法
  5. 洋桃电子STM32物联网入门30步笔记三、新建CubeIDE工程和设置讲解
  6. 网际控制报文协议ICMP的应用——traceroute
  7. 关于计算机的作文1500字,关于计算机的科普作文:科普作文 1500字
  8. Redis数据持久化机制AOF原理分析二
  9. Microsoft Office Visio Professional 之包图
  10. ubuntu20.04下安装gambas的正确方法