创建网络爬虫是检索在线可用信息的一种智能方式。 借助网络爬虫,您可以扫描互联网、浏览各个网站并分析和提取其内容。
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 源代码。
就是这么简单!
这是一个例子:
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,您可以创建一个抓取工具,帮助您匿名从网站检索信息,而不必担心被阻止。
这是您将爬网工作提升到新水平所需的工具。
刮刮快乐!
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/1224.html