当前位置:网站首页 > 技术博客 > 正文

基于java的网络爬虫



创建网络爬虫是检索在线可用信息的一种智能方式。 借助网络爬虫,您可以扫描互联网、浏览各个网站并分析和提取其内容。

Java 编程语言提供了一种构建网络爬虫和从网站收集数据的简单方法。 您可以将提取的数据用于各种用例,例如用于分析目的、提供使用第三方数据的服务或生成统计数据。

在本文中,我们将引导您完成使用 Java 和 Crawlbase 构建网络爬虫的过程。

通常,抓取 Web 数据涉及创建一个脚本,该脚本将请求发送到目标网页,访问其底层 HTML 代码,并抓取所需的信息。

要实现该目标,您需要以下内容:

  • Java 11 开发环境
  • 爬虫库

在我们开发爬行逻辑之前,让我们澄清为什么使用 Crawlbase 对于网络爬行很重要。

Crawlbase 是一款功能强大的数据爬行和抓取工具,您可以使用它快速轻松地从网站获取信息。

以下是您应该使用它来抓取在线数据的一些原因:

对 Crawling API 发出的每个请求都以以下基本部分开头:

此外,您需要向 API 添加以下强制参数:

  • 身份验证令牌
  • 网址

身份验证令牌是授权您使用爬网 API 的唯一令牌。一旦您注册帐户,Crawlbase 将为您提供两种类型的令牌:

  • 普通令牌 这是为了发出通用的抓取请求。
  • JavaScript 令牌 这是用于抓取动态网站。 它为您提供了无头浏览器功能,用于抓取使用 JavaScript 呈现的网页。 如前所述,这是爬取高级网站的有用方法。

以下是将身份验证令牌添加到您的 API 请求的方法:

第二个强制参数是要抓取的 URL。 它应该以 HTTP 或 HTTPS 开头,并且是完全编码的。 编码将 URL 字符串转换为可以在 Internet 上有效且轻松地传输的格式。

以下是将 URL 插入 API 请求的方法:

如果您运行上述代码行——例如,在终端上使用 cURL 或将其粘贴到浏览器的地址栏上——它将执行 API 请求并返回目标网页的完整 HTML 源代码。

就是这么简单!

这是一个例子:

HTTP 客户端 API

HttpClient API 支持 HTTP/1.1 和 HTTP/2。 默认情况下,它使用 HTTP/2 协议发送请求。 如果请求发送到不支持 HTTP/2 的服务器,它将自动降级为 HTTP/1。

API 由三个核心类组成:

  • 请求
  • 客户端
  • 响应

让我们更详细地讨论它们中的每一个。

这些是最常见的方法:

  • URI方法
  • 请求方法
  • 协议版本方法
  • 超时方法

让我们更详细地讨论它们中的每一个。

这是代码:

  • 得到()
  • 邮政()
  • 放()
  • 删除()

这是代码:

到目前为止,HttpRequest 已经拥有了所有应该传递给 HttpClient 的参数。 但是,您可能需要包含其他参数,例如 HTTP 协议版本和超时。

让我们看看如何添加附加参数。

如前所述,HttpClient API 默认使用 HTTP/2 协议。 尽管如此,您可以指定要使用的 HTTP 协议的版本。

这是代码:

这是代码:

HttpClient 类是 API 的主要入口点——它充当多个请求之间共享的配置详细信息的容器。 它是用于发送请求和接收响应的 HTTP 客户端。

HttpClient 类提供了几种有用的自描述方法,您可以在处理请求和响应时使用。

这些是您可以做的一些事情:

  • 设置协议版本
  • 设置重定向策略
  • 发送同步和异步请求

让我们更详细地讨论它们中的每一个。

如前所述,HttpClient 类默认使用 HTTP/2 协议。 但是,您可以设置首选协议版本,HTTP/1.1 或 HTTP/2。

这是一个例子:

如果目标网页已移至其他地址,您将获得 3xx HTTP 状态代码。 由于新 URI 的地址通常会提供状态码信息,因此设置正确的重定向策略可以使 HttpClient 自动将请求转发到新位置。

这是一个例子:

HttpClient 支持两种发送请求的方式:

  • 同步地 通过使用 发送() 方法。 这会阻塞客户端,直到收到响应,然后继续执行其余部分。

这是一个例子:

  • 异步 通过使用 发送异步() 方法。 这不会等待收到响应; 它是非阻塞的。 一旦 发送异步() 方法被调用,它立即返回 CompletableFuture< HttpResponse >,一旦收到响应就会完成。 返回的 可完成的未来 可以使用各种技术来定义各种异步任务之间的依赖关系。

这是一个例子:

HttpResponse,顾名思义,代表发送一个HttpRequest后收到的响应。 HttpResponse 提供了不同的有用方法来处理收到的响应。

这些是最重要的方法:

  • 状态码() 该方法返回响应的状态码。 它的 INT 类型
  • 身体() 此方法返回响应的正文。 返回类型取决于响应的类型 身体处理程序 传递给 发送() 方法。

这是一个例子:

下面是一个使用 HttpClient 同步方法抓取网页并输出其内容的示例:

这是输出(为简洁起见,将其截断):

代码输出

这是一个例子:

这就是如何在 Java 中构建网络爬虫。 Java 11 中引入的 HttpClient API 使发送和处理来自服务器的响应变得容易。

如果该 API 与 Crawlbase 这样的多功能工具相结合,它可以使网络爬行任务变得顺利且有价值。

使用Crawlbase,您可以创建一个抓取工具,帮助您匿名从网站检索信息,而不必担心被阻止。

这是您将爬网工作提升到新水平所需的工具。

刮刮快乐!

  • 上一篇: c语言if0endif
  • 下一篇: 公共dns是什么
  • 版权声明


    相关文章:

  • c语言if0endif2024-12-17 22:30:01
  • dqn详解2024-12-17 22:30:01
  • 一句话木马图片2024-12-17 22:30:01
  • swing实现画图2024-12-17 22:30:01
  • 二叉树的遍历算法2024-12-17 22:30:01
  • 公共dns是什么2024-12-17 22:30:01
  • java设置请求头2024-12-17 22:30:01
  • linux ntp同步命令2024-12-17 22:30:01
  • 数据泵导入dmp文件语句2024-12-17 22:30:01
  • maven中clean和install2024-12-17 22:30:01