crawler4j 抓取数据的步骤顺序是怎样的?
What sequence of steps does crawler4j follow to fetch data?
我想学,
- crawler4j 是如何工作的?
- 它是否获取网页然后下载其内容并提取它?
- .db 和 .cvs 文件及其结构如何?
Generally ,What sequences it follows?
拜托,我想要一个描述性的内容
谢谢
一般爬虫进程
一个典型的多线程爬虫的流程如下:
我们有一个队列数据结构,叫做frontier
。新发现的URLs(或起点,所谓的种子)被添加到这个数据结构中。此外,为每个 URL 分配一个唯一的 ID,以确定之前是否访问过给定的 URL。
爬虫线程然后从 frontier
获取 URLs 并安排它们供以后处理。
实际处理开始:
- 确定并解析给定 URL 的
robots.txt
以遵守排除标准并成为礼貌的网络爬虫(可配置)
- 接下来,线程将检查礼貌,即再次访问 URL 的同一主机之前等待的时间。
- 实际URL被爬虫访问并下载了内容(这可以是字面上的一切)
- 如果我们有 HTML 内容,则解析此内容并提取潜在的新 URLs 并将其添加到边界(在
crawler4j
中,这可以通过 shouldVisit(...)
).
重复整个过程,直到没有新的URL添加到frontier
。
一般(重点)爬虫架构
除了 crawler4j
的实施细节外,或多或少 一般 (重点)爬虫架构(在单个 server/pc 上)如下所示:
免责声明:图片是我自己的作品。请参考此 post.
以尊重这一点
我想学,
- crawler4j 是如何工作的?
- 它是否获取网页然后下载其内容并提取它?
- .db 和 .cvs 文件及其结构如何?
Generally ,What sequences it follows?
拜托,我想要一个描述性的内容
谢谢
一般爬虫进程
一个典型的多线程爬虫的流程如下:
我们有一个队列数据结构,叫做
frontier
。新发现的URLs(或起点,所谓的种子)被添加到这个数据结构中。此外,为每个 URL 分配一个唯一的 ID,以确定之前是否访问过给定的 URL。爬虫线程然后从
frontier
获取 URLs 并安排它们供以后处理。实际处理开始:
- 确定并解析给定 URL 的
robots.txt
以遵守排除标准并成为礼貌的网络爬虫(可配置) - 接下来,线程将检查礼貌,即再次访问 URL 的同一主机之前等待的时间。
- 实际URL被爬虫访问并下载了内容(这可以是字面上的一切)
- 如果我们有 HTML 内容,则解析此内容并提取潜在的新 URLs 并将其添加到边界(在
crawler4j
中,这可以通过shouldVisit(...)
).
- 确定并解析给定 URL 的
重复整个过程,直到没有新的URL添加到
frontier
。
一般(重点)爬虫架构
除了 crawler4j
的实施细节外,或多或少 一般 (重点)爬虫架构(在单个 server/pc 上)如下所示:
免责声明:图片是我自己的作品。请参考此 post.
以尊重这一点