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 获取数据遵循什么步骤顺序? 的相关文章

  • 如何在 JPA 中使用枚举

    我有一个电影租赁系统的现有数据库 每部电影都有一个评级属性 在 SQL 中 他们使用约束来限制该属性的允许值 CONSTRAINT film rating check CHECK rating text text OR rating tex
  • 如何将 .cer 证书导入 java 密钥库?

    在开发 Java Web 服务客户端期间 我遇到了一个问题 Web 服务的身份验证使用客户端证书 用户名和密码 我从网络服务背后的公司收到的客户端证书位于 cer格式 当我使用文本编辑器检查该文件时 它具有以下内容 BEGIN CERTIF
  • Java 9 中可以使用提前编译吗?

    As per JEP 295 http openjdk java net jeps 295 任何 JDK 模块 类或用户代码的 AOT 编译都是实验性的 JDK 9 中不支持 要使用 AOT 化的 java base 模块 用户必须编译该模
  • Java byte[] 与 String 之间的转换

    为什么这个junit测试失败了 import org junit Assert import org junit Test import java io UnsupportedEncodingException public class T
  • 我需要显式关闭连接吗?

    我持有一个实例MongoClient and DB在我的应用程序中 每次我想执行某些操作时 我都会调用getCollection 我想知道是否需要显式关闭连接 就像connection close 在 JDBC 中 强调一下 我只有一个Mo
  • Ant 无法启动,给出主类错误

    我正在运行 Elementary OS 基于 Ubuntu 12 并且在运行 apache ant 时遇到问题 它在重新启动之前就可以正常工作 所以我不确定会发生什么变化 我在 etc environment 中定义了环境变量 如下所示 P
  • 在 JavaFX 中拖动未装饰的舞台

    我希望将舞台设置为 未装饰 使其可拖动且可最小化 问题是我找不到这样做的方法 因为我遇到的示例是通过插入到主方法中的方法来实现的 我想通过控制器类中声明的方法来完成此操作 就像我如何使用下面的 WindowClose 方法来完成此操作 这是
  • Akka 和 spring 配置

    我正在尝试将 akka 与 spring 结合起来 但没有成功 基本上 我的应用程序似乎不习惯读取 akka 模式 具有架构的 service context xml 的一部分
  • wsdl 没有服务元素

    我必须使用 WCF Web 服务并获得 WSDL 外部的 因此无法控制 WSDL 在 WSDL 定义中 我没有找到包含服务 端口和地址元素的服务元素 WSDL 中不存在这种情况正常吗 这对于 WCF WSDL 来说很常见吗 我正在尝试使用轴
  • java 1.8下无法启动eclipse

    java 1 8 升级后我无法启动 eclipse 附上错误截图 这是我的 eclipse 配置设置 我该如何解决 startup plugins org eclipse equinox launcher 1 3 0 v20120522 1
  • 我可以关闭并重新打开套接字吗?

    我学习了一个使用套接字的例子 在此示例中 客户端向服务器发送请求以打开套接字 然后服务器 侦听特定端口 打开套接字 一切都很好 套接字从双方 客户端和服务器 打开 但我仍然不清楚这个东西有多灵活 例如 客户端是否可以关闭一个打开的 从两端
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • 如何配置嵌入式 MongoDB 以在 Spring Boot 应用程序中进行集成测试?

    我有一个相当简单的 Spring Boot 应用程序 它公开一个小型 REST API 并从 MongoDB 实例检索数据 对 MongoDB 实例的查询通过基于 Spring Data 的存储库 下面的一些关键代码 Main applic
  • 如何修改生成的SOAP请求?

    我正处于创建输出拦截器并从 SOAP 消息中获取 OuputStream 的阶段 但是 如何在将 SOAP 信封发送到端点之前对其进行修改呢 我想删除一些 xml 元素 一种方法是获取文档并通过 XSLT 转换运行它 您可以通过调用来获取拦
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • 如何在 Servlet 中打开弹出窗口,然后重定向页面

    我想在调用 servlet 时打开一个弹出窗口 然后想将 servlet 重定向到某个 jsp page 这就是我所做的 protected void doGet HttpServletRequest request HttpServlet
  • 线程“main”中出现异常 java.lang.UnsatisfiedLinkError: ... \jzmq.dll: 找不到依赖库

    我有一个使用 ZMQ 的 java 应用程序 我已经能够在我的 Win7 PC 上运行它 我将 jzmq dll 放在 jar 可执行文件所在的同一文件夹中 然后通过命令 java jar myapp jar 运行它 我的下一步是将其移至服
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte

随机推荐

  • 如何捕获 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 爬虫通用流程 一个典型的多线程爬虫的流程如下 我们有一个队