【问题标题】:What sequence of steps does crawler4j follow to fetch data?crawler4j 遵循什么步骤来获取数据?
【发布时间】:2018-11-17 13:31:21
【问题描述】:

我想学习,

  1. crawler4j 是如何工作的?
  2. 它会获取网页然后下载其内容并提取它吗?
  3. .db 和 .cvs 文件及其结构如何?

一般来说,它遵循什么顺序?

拜托,我想要一个描述性的内容

谢谢

【问题讨论】:

  • 好吧,你希望人们在 StackOverflow 上解释软件的用途和功能吗?还是您认为自己阅读文档以解决您的任务/家庭作业/作业更有意义?
  • 我不想要例子或解释我只想知道它的顺序。

标签: java web-crawler crawler4j


【解决方案1】:

一般爬虫流程

典型的多线程爬虫流程如下:

  1. 我们有一个队列数据结构,称为frontier。新发现的 URL(或起点,所谓的种子)被添加到此数据结构中。此外,还会为每个 URL 分配一个唯一 ID,以确定给定 URL 是否曾被访问过。

  2. 然后,爬虫线程从 frontier 获取 URL 并安排它们以供以后处理。

  3. 实际处理开始:

    • 确定并解析给定 URL 的 robots.txt 以遵守排除标准并成为礼貌的网络爬虫(可配置)
    • 接下来,线程将检查礼貌,即在再次访问同一个 URL 主机之前等待的时间。
    • 爬虫访问实际 URL 并下载内容(这实际上可以是所有内容)
    • 如果我们有 HTML 内容,则会解析该内容并提取潜在的新 URL 并将其添加到边界(在 crawler4j 中,这可以通过 shouldVisit(...) 进行控制)。
  4. 整个过程不断重复,直到frontier中没有添加新的URL。

一般(重点)爬虫架构

除了crawler4j 的实现细节之外,一个或多或少的通用(集中)爬虫架构(在单个服务器/PC 上)如下所示:

免责声明:图片是我自己的作品。请通过参考这篇文章尊重这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多