crawler4j 获取数据遵循什么步骤顺序?

2024-01-04

我想学习,

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

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

拜托,我想要描述性内容

Thanks


爬虫通用流程

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

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

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

  3. 实际处理开始:

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

通用(重点)爬虫架构

除了实施细节之外crawler4j或多或少general(重点)爬虫架构(在单个服务器/PC上)如下所示:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

crawler4j 获取数据遵循什么步骤顺序? 的相关文章

  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • Java 枚举与创建位掩码和检查权限的混淆

    我想将此 c 权限模块移植到 java 但是当我无法将数值保存在数据库中然后将其转换为枚举表示形式时 我很困惑如何执行此操作 在 C 中 我创建一个如下所示的枚举 public enum ArticlePermission CanRead
  • 为什么 JTables 使 TableModel 在呈现时不可序列化?

    所以最近我正在开发一个工具 供我们配置某些应用程序 它不需要是什么真正令人敬畏的东西 只是一个具有一些 SQL 脚本生成功能并创建几个 XML 文件的基本工具 在此期间 我使用自己的 AbstractTableModel 实现创建了一系列
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • 过滤两次 Lambda Java

    我有一个清单如下 1 2 3 4 5 6 7 和 预期结果必须是 1 2 3 4 5 6 7 我知道怎么做才能到7点 我的结果 1 2 3 4 5 6 我也想知道如何输入 7 我添加了i gt i objList size 1到我的过滤器
  • 在 Jar 文件中运行 ANT build.xml 文件

    我需要使用存储在 jar 文件中的 build xml 文件运行 ANT 构建 该 jar 文件在类路径中可用 是否可以在不分解 jar 文件并将 build xml 保存到本地目录的情况下做到这一点 如果是的话我该怎么办呢 Update
  • 如何更改javaFX中按钮的图像?

    我正在使用javaFX 我制作了一个按钮并为此设置了图像 代码是 Image playI new Image file c Users Farhad Desktop icons play2 jpg ImageView iv1 new Ima
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • Java ResultSet 如何检查是否有结果

    结果集 http java sun com j2se 1 4 2 docs api java sql ResultSet html没有 hasNext 方法 我想检查 resultSet 是否有任何值 这是正确的方法吗 if resultS
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • 为什么 Java 8 不允许非公共默认方法?

    让我们举个例子 public interface Testerface default public String example return Hello public class Tester implements Testerface
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • Eclipse 启动时崩溃;退出代码=13

    I am trying to work with Eclipse Helios on my x64 machine Im pretty sure now that this problem could occur with any ecli
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi

随机推荐

  • 如何捕获 MonoTouch 应用程序中的 iOS 崩溃

    我们已经记录了 iPad MonoTouch 应用程序中发生的任何 Net Framework 异常 并且可以将这些异常返回给我们的支持部门以帮助分析和解决问题 但是 如果应用程序由于 iOS 错误 即 sigsev 而崩溃 我们不确定如何
  • 如何使用axios获取本地文件?

    我正在尝试获取本地文件 结果 js componentWillMount axios get config db json then function response alert ok catch function error alert
  • 如何使用c#在stackexchange redis客户端上执行flush命令

    我们如何使用 stackexchange redis 客户端执行 FlushAll 和 FlushDB redis 命令 The 项目主页 https github com StackExchange StackExchange Redis
  • 更新 ListView 行中与数据库行对应的复选框

    我已经设置了android focusable false 在我的自定义布局中的复选框上 我的后端 SQLite 数据库取决于 CheckBox 是否被选中 我的每一行ListView对应于我的数据库中的一行 所以我的问题是 我应该在哪里放
  • 如何模拟返回最终类的静态方法?

    我想模拟下一行 Bigquery bigquery Transport newBigQueryClient options build 这里的问题是 newBigQueryClient 方法返回 Bulder 类 这是最终的 这意味着我不能
  • SSE 内在函数和循环展开

    我正在尝试优化一些循环并且已经成功 但我想知道我是否只部分正确地完成了它 举例来说 我有这个循环 for i 0 i
  • MongooseError - 操作 `users.findOne()` 缓冲在 10000 毫秒后超时

    我的代码最初可以工作 但我不知道为什么它停止工作并给了我这个错误 MongooseError Operation users findOne buffering timed out after 10000ms at Timeout
  • 如何防止传单地图在闪亮的应用程序中重置缩放?

    我自己和其他人构建了一个在线应用程序的原型 以帮助交通规划者优先考虑自行车道的新资金 https robinlovelace shinyapps io fixMyPath https robinlovelace shinyapps io f
  • java 将对象从 JFrame 传递到 JPanel

    我正在使用 NetBeans 在 Java 中开发一个独立的应用程序 该应用程序通过串行端口获取和发送数据 我正在使用一个很棒的 AP I 进行串行通信 称为 java 简单串行连接器http code google com p java
  • jQuery:如何获取光标下方的元素?

    我正在执行拖放操作 并且当我将某个元素移至妨碍我的元素上方时 我希望该元素向下移动 一个简单的技巧就是这样说 var hoverElem null hover function hoverElem this 然后当你需要调用任何函数来获取值
  • 对一个数组和其他数组进行排序?

    这是 C 示例 int a 1000 3 1 5 4 int b 1000 7 9 11 3 如果我对数组 a 进行排序 数组 b 也跟随数组 a 我该如何做到这一点 example a 1000 1 3 4 5 b 1000 9 7 3
  • 将最大和最小 JVM 堆大小设置为相同好吗?

    目前 在我们的测试环境中 最大和最小 JVM 堆大小设置为相同的值 基本上是专用服务器计算机允许我们的应用程序使用的大小 这是性能最佳的配置还是给 JVM 一个范围会更好 更新 这个答案最初写于 2014 年 现已过时 彼得的回答是正确的
  • mongodb如何查询sum字符串?

    我有一些数据order文档如 id orderTotal amount 10 99 unit USD orderTime id orderTotal amount 9 99 unit USD orderTime id orderTotal
  • ASP.NET中调度任务的方法(无需编写Windows调度程序)

    我喜欢共享主机 他们不允许我使用Windows调度程序 那么在asp net中实现计划任务即 定时邮件 的方法是什么 我刚刚看到后台进程 https blog stackoverflow com 2008 07 easy backgroun
  • 如何在 C++ 中创建我自己的循环版本?

    我想知道是否可以创建自定义函数 例如for for each while etc 我想做的事情都是现有循环做不到的 我只是好奇地想了解它们是如何工作的以及我是否需要创建自己的 例如 如果想要创建仅接受参数的 for 函数的另一个版本 在此示
  • 取消选中复选框时删除 li 元素

    我可以动态地添加一个新的li复选框的选中事件上的元素 但是我无法删除相同的内容unchecked event document ready function var value tmCheckbox change function if t
  • WebForms 中的 Tab 键切换行为

    在 WinForms 中 我可以设计一个表单并使用 TabValue 来控制每次用户点击 Tab 时选择哪个控件 我的问题是 在网络表单中 是否有一种机制可以做同样的事情 编辑 这同样适用于 Ajax 密集型应用程序吗 您可以使用 ASP
  • Xml 架构扩展顺序

    如果我有扩展 如何确保派生元素位于基类元素前面 默认情况是相反的 我很想用all 但我知道这是不可能的
  • java中Arrays.fill的复杂性

    How Arrays fill char a char val 已实施内部 in java 它的复杂性是什么 Java 实现使用一个简单的for环形 然而 重要的是要记住 JVM 经常对内部功能进行重大更改 并且经常在运行时用较低级别的实现
  • crawler4j 获取数据遵循什么步骤顺序?

    我想学习 crawler4j是如何工作的 它是否获取网页然后下载其内容并提取它 db 和 csv 文件及其结构怎么样 一般来说 它遵循什么顺序 拜托 我想要描述性内容 Thanks 爬虫通用流程 一个典型的多线程爬虫的流程如下 我们有一个队