你有没有试过从任何网站上抓取内容? 也许来自 Yelp?

在今天的帖子中,我们将看到这一点; 我们将一步一步地抓取 Yelp 评论,以便您可以按照本教程快速开始使用您的爬虫。

获取 Yelp 评论 URL

与往常一样,我们要做的第一件事就是获取我们想要抓取的 URL。

对于本教程,我们将使用以下餐厅评论:

1
https://www.yelp.com/biz/sushi-yasaka-new-york

如您所见,以下是今天访问该网站时出现的第一条评论:

刮 Yelp 评论

您还需要一个 ProxyCrawl 帐户; 如果你没有,你可以在这里免费创建你的 在这里创建一个。

一旦您准备好您的帐户和代币,我们就可以开始了。

我们将在 NodeJS 中完成本教程,但可以根据需要随意使用任何其他语言。

正在加载 Yelp 评论

为了简化 Node 的使用,我们将使用 request 和 Cheerio 开源库,可以从这里下载:

Request 将允许我们在 Node 中快速发出 HTTP 请求,而 Cheerio 将让我们解析返回的 HTML 并抓取 yelp 评论。

因此我们可以继续执行以下操作(确保使用您的帐户令牌):

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

请求(
'https://api.proxycrawl.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fwww.yelp.com%2Fbiz%2Fsushi-yasaka-new-york',
(错误、响应、正文) => {
if (错误 || (响应 && 响应。状态码 !== 200)){
回报;
}
领事.日志(身体);
}
);

我们正在调用 ProxyCrawl API 来抓取 Yelp,而不会被阻止或获取验证码。

刮 Yelp 评论

现在我们有了响应代码,我们可以继续抓取实际页面内容并提取评论。

我们可以通过 Cheerio 快速做到这一点; 我们需要首先将生成的 HTML 加载到 Cheerio 中,然后使用 css3 选择器和我们用于 jQuery 的相同语法,提取评论。

所以我们的代码看起来像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
常量 请求 = 要求('要求');
常量 欢呼= 要求('cheerio');

请求(
'https://api.proxycrawl.com/?token=YOUR_TOKEN&url=https%3A%2F%2Fwww.yelp.com%2Fbiz%2Fsushi-yasaka-new-york',
(错误、响应、正文) => {
if (错误 || (响应 && 响应。状态码 !== 200)){
回报;
}

常量 $ = 快乐。加载(身体);
$('.review.review--with-sidebar').(功能 (){
领事.日志($(Free Introduction).发现('.review-content p').HTML());
});
}
);

给你! 我们已经准备好对 yelp 评论进行操作,并且可能会存储在 MongoDB 之类的某个地方。 但这超出了本教程的范围。

请记住,如果您使用的不是节点,而是其他编程语言,如 Ruby 或 PHP。 您可以轻松找到 HTML 解析库来解析结果 代理爬取 API.

我们希望你喜欢这个教程,我们希望很快见到你 代理爬取. 快乐爬行!