你准备好迎接大数据了吗? 您是否需要大量抓取和抓取大数据? 在 Crawlbase(以前的 ProxyCrawl)中,我们拥有这项工作的工具和资源。 继续阅读这篇文章,了解如何轻松构建爬虫以每天加载数百万页。

我们需要的第一件事显然是 Crawlbase(以前的 ProxyCrawl)帐户.

一旦您准备好帐户并添加了您的帐单详细信息(这是能够使用大量爬虫的要求),请转到 爬虫部分 创建您的第一个爬虫。

这是您的爬虫的控制面板,您将能够查看、停止、启动、删除和创建您的 Crawlbase(以前的 ProxyCrawl)爬虫。

创建你的第一个爬虫

创建爬虫非常简单,一旦进入爬虫部分(见上文),如果你想加载没有 javascript 的网站,你只需点击“创建新的 TCP 爬虫”,或者如果你想点击“创建新的 JS 爬虫”抓取启用了 javascript 的网站(如使用 React、Angular、Backbone 等制作的网站)。

您将看到类似以下内容:

爬虫创建

你应该为你的爬虫写一个名字。 对于此示例,我们将其称为“亚马逊”,因为我们将抓取亚马逊页面。

下一个字段是回调 url。 这是您的服务器,我们将在此示例中在 Node 中实现。 但是您可以使用任何语言:Ruby、PHP、Go、Node、Python 或任何其他编程语言。 正如我们所说,对于这个示例,我们将使用一个节点服务器,出于演示目的,它将位于以下 url: http://mywebsite.com/amazon-crawler

所以我们的设置将如下所示:

爬虫创建第二步抓取

现在让我们用“创建爬虫”来保存爬虫,然后构建我们的节点服务器。

搭建节点抓取服务器

让我们从节点服务器的基本代码开始。 创建一个包含以下内容的 server.js 文件:

1
2
3
4
5
6
7
8
9
常量 http = 要求('http');

功能 处理请求(请求,响应){
响应。结束();
}

常量 服务器=http。创建服务器(处理请求);
服务器。(80, () => 领事.日志('在端口 80 上运行的服务器'));
服务器。on('错误', (犯错) => 领事.日志('服务器错误:', 呃));

这是一个运行在 80 端口的基本服务器。我们将在 handleRequest 函数中构建我们的响应处理。 如果您的端口在不同的端口中运行,例如 4321。请确保相应地更新爬虫中的回调 url。 例如: http://mywebsite.com:4321/amazon-crawler

请求处理函数

Crawlbase(以前的 ProxyCrawl)爬虫将通过 POST 将 html 响应发送到您的服务器。 所以我们要基本检查请求方法是POST,然后获取body的内容。 那将是页面 HTML。 让我们简单点,这将是我们的请求处理程序的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
功能 处理请求(请求,响应){
if (要求。方法 !== 'POST'){
回报 响应。结束();
}
常量 requestId = 请求。.摆脱;
常量 requestUrl = 请求。.网址;
发布数据 = '';
请求。on('数据', (data) => (postData += 数据));
请求。on('结尾', () => {
领事.日志(requestId, requestUrl, postData);
回报 响应。结束();
});
请求。on('错误', () => 领事.日志('接收 POST 数据时发生错误'));
}

使用此功能,您可以开始向刚刚创建的爬虫推送请求,并且您应该开始在服务器中看到响应。

让我们尝试在终端中运行以下命令(确保替换为您可以在 API文档):

1
卷曲 “https://api.crawlbase.com/?token=YOUR_API_TOKEN&url=https%3A%2F%2Fwww.amazon.com&crawler=amazon&callback=true”

多次运行该命令,您将开始在服务器中看到日志。

请注意,这是一个基本的实现。 对于现实世界的使用,您将不得不考虑其他事情,例如更好的错误处理和日志记录以及状态代码。

抓取亚马逊数据

现在是时候从 HTML 中获取实际数据了。 我们已经有一篇博文详细解释了如何使用 node.js 来做这件事。 所以你为什么不跳上它来了解一下 在这里用节点刮? 有趣的部分从“抓取亚马逊评论”部分开始。 您可以将相同的代码应用于您的服务器,您将拥有一个正在运行的 Crawlbase(以前称为 ProxyCrawl)Crawl 和爬虫。 容易吧?

我们希望您喜欢这篇关于抓取和抓取的文章。 如果您想了解更多内容,请不要犹豫 立即联系我们.