Java Web 爬虫

2025 年 8 月 5 日 | 阅读 7 分钟

网络爬虫基本上是一种程序,主要用于在网上导航并查找新页面或更新的页面进行索引。爬虫从各种种子网站或热门 URL 开始,并进行深度和广度的搜索以提取超链接。

网络爬虫应该是友好的并且健壮的。这里的友好意味着它遵守 robots.txt 设置的规则,并避免频繁访问网站。健壮意味着能够避开蜘蛛网和其他恶意行为。

以下是创建网络爬虫的步骤

  • 第一步,我们首先从队列中选择一个 URL。
  • 获取该 URL 的 HTML 代码。
  • 通过解析 HTML 代码获取指向其他 URL 的链接。
  • 检查该 URL 是否已经被爬取过。我们还检查是否之前看到过相同的内容。如果这两个条件都不满足,我们将其添加到索引中。
  • 对于每个提取的 URL,验证它们是否同意被检查(robots.txt、爬行频率)

我们使用 jsoup,即 Java HTML 解析库,通过将以下依赖项添加到我们的 POM.xml 文件中。

让我们从网络爬虫的基本代码开始,了解它是如何工作的

WebCrawlerExample.java

输出

Web crawler Java

让我们对上述代码进行一些修改,设置链接的提取深度。前一个代码和当前代码的唯一区别在于它会爬取 URL 直到指定的深度。getPageLink() 方法接受一个整数参数,表示链接的深度。

WebCrawlerExampleWithDepth.java

输出

Web crawler Java

数据爬取与数据抓取之间的区别

数据爬取和数据抓取都是数据处理的两个重要概念。

数据爬取是指处理大型数据集,我们开发自己的爬虫,它可以爬取到最深的网络页面。

数据抓取是指从任何来源检索数据/信息。

数据抓取数据爬取
数据抓取不仅可以从网络,还可以从任何来源提取数据。数据爬取仅从网络提取数据。
在数据抓取中,重复不一定是必需的。在数据爬取中,重复是重要的一部分。
它可以以任何规模完成,即小型或大型。它主要以大规模完成。
它需要爬取解析器和代理。它只需要一个爬取代理。

让我们再举一个例子,使用 Java 网络爬虫来爬取文章。

ExtractArticlesExample.java

输出

Web crawler Java

输出