控制器类必须传一个类型为CrawlConfig的参数,用于配置crawler4j。下面描述了一些关于配置的细节。

抓取深度

默认情况下没有抓取深度的限制。可以通过配置来限制深度,比如,你有个种子页面A连接到B,B又连接到C,C又连接到D。结构如下:

A --> B --> C --> D

A是种子页面深度为0,B为1,C、D以此类推。如:当设置抓取深度是2是,就不会抓取页面D。抓取最大深度通过以下代码配置:

crawlConfig.setMaxDepthOfCrawling(maxDepthOfCrawling);

页面抓取的最大数量

默认情况下没有抓取数量限制,可以通过以下代码配置:

crawlConfig.setMaxPagesToFetch(maxPagesToFetch);

其他限制

crawler4j是高效的,有着极快的抓取能力(比如:每秒可以抓取200个Wikipedia页面)。然而,这会给服务器带来很大的负荷(而服务器可能会阻断你的请求!)。所以,从1.3版开始,默认情况下,crawler4j每次请求前等待200毫秒。但是这个参数可以修改:

crawlConfig.setPolitenessDelay(politenessDelay);

代理

使用下代码配置爬虫通过代理:

crawlConfig.setProxyHost("proxyserver.example.com");

crawlConfig.setProxyPort(8080);

如果你的代理需要认证:

crawlConfig.setProxyUsername(username);

crawlConfig.getProxyPassword(password);

抓取恢复

有时爬虫需要运行很长时间,但中途可能意外终止了。这种情况下,可以通过以下配置恢复停止/崩溃的爬虫:

crawlConfig.setResumableCrawling(true);

User-agent字符串

User-agent字符串用于向web服务器表明你的爬虫。User-agent 详解 。 默认情况下crawler4j使用如下字符串: “crawler4j (https://github.com/yasserg/crawler4j/)” 你可以通过配置修改:

crawlConfig.setUserAgentString(userAgentString);

最新文章

  1. 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令
  2. python-面向对象进阶
  3. 团队开发——冲刺1.d
  4. Python基础教程【读书笔记】 - 2016/7/24
  5. java线程中的wait和notify以及notifyall
  6. (转载)按行合并两个sql的查询结果
  7. intellij安装 配置 创建项目
  8. STM32启动文件的选择
  9. Python三元表达式
  10. 复旦大学EWP菁英女性课程(复旦卓越女性课程改版后第一期) _复旦大学、女性课程、高级研修班、心理学、EWP_培训通课程
  11. literal
  12. python实例编写(1)--浏览器操作,元素操作
  13. 【Python 24】52周存钱挑战4.0(函数)
  14. BZOJ4855 : [Jsoi2016]轻重路径
  15. PyQt5初级教程(一)
  16. 如何打jar包 学习笔记
  17. hibernate文档头的不同版本
  18. 强大的DataGrid组件[1]
  19. 条件随机场(crf)及tensorflow代码实例
  20. firedac连接WINDOWS的ORACLE

热门文章

  1. css中常用的七种三栏布局技巧总结
  2. CI中的超级对象
  3. MySQL数据库的使用流程,代码解释+Hibernate连接数据库
  4. 「Redis 笔记」常用命令
  5. 基于SLIC分割的特征点检测
  6. OpenCV的Python接口
  7. Python Django中QQ邮箱授权码问题
  8. java调用第三方命令,process.waitfor()挂起(你不知道的坑)
  9. Virtual servers on a Raspberry Pi with the light weight OS virtualization system Docker!
  10. USB OTG学习笔记