如何为您的企业挖掘商机

罗伯特-芒恰努(Robert Munceanu),2021 年 4 月 24 日

博客图片

如果你有一个了不起的产品或革命性的想法要与世界分享,而人们却不知道它的存在,岂不可惜?

大家好,欢迎收看今天的特别节目!这篇文章的主菜将是 "线索生成",我们将了解为什么使用网络搜索工具可以帮助我们高效地收集线索。

如果你坚持到最后,就会看到一个网络搜刮工具的快速操作示例,以及它如何帮助企业找到潜在客户。废话不多说,让我们磨刀霍霍,从开胃菜开始!

网络搜索如何帮助您收集线索

创建一个巨大的线索库可能需要一些时间,因为您需要大量的联系人才能发展您的业务,而手动搜索每个网站又非常耗时。您也不需要每个人的电话号码,只需要与您的业务相关的电话号码,因此,高质量的选择会占用您更多的时间。

我们能做些什么呢?

有些人围绕这一主题开展业务,即收集并向其他公司出售销售线索。这听起来是一个快速而简单的解决方案,但他们的线索库质量可能达不到你的标准。另外,毫无疑问,这种选择意味着要花费一些钱。

那么,如何才能快速高效地自己完成这项工作呢?这就需要网络搜索工具来帮忙了。这样,您就可以只选择您感兴趣的线索,例如,根据他们的评论将其分开。

使用网络抓取 API 生成线索的分步指南

假设我们是镇上一家新开的微型啤酒厂,希望人们知道我们的产品。为了实现这一目标,我们需要联系当地的餐馆或酒吧,询问他们是否有兴趣在其营业场所销售我们的产品。

至于怎么做,您自己决定。我们会帮你刮,不会帮你说!

首先,我们需要知道到哪里去寻找所需的信息,而互联网是最好的途径。有一些目录网站提供按利基、地点、活动甚至规模分类的企业名单。在本例中,我们将使用Yell

接下来,我们将创建 WebScrapingAPI 账户并继续示例。

创建 WebScrapingAPI 账户

这一步很容易,因为创建账户非常简单,而且不用担心,这是免费的!通过电子邮件确认注册后,我们可以继续下一步。

使用您的访问密钥

登录后,你将被重定向到仪表板,在这里你可以找到帮助你搜索网络的信息。在"游乐场 "部分,您可以使用不同参数测试结果,如果您想进一步了解如何使用 API,可以查看文档

博客图片

现在,我们关心的是访问密钥。在我们的项目中,该密钥将作为参数使用,以便对应用程序接口进行身份验证。

注意不要与任何人共享,因为这是你的小秘密,但如果你认为访问密钥已经泄露,你可以随时按上面的按钮重置 API 密钥

将 WebScrapingAPI 集成到您的项目中

在这一步中,我们必须准备好用于刮擦的项目。您可以使用任何最适合您的集成开发环境和编程语言,但在本示例中,我们将使用WebStorm作为集成开发环境,并使用 NodeJS 编写代码。

1.安装以下软件包

  • got:用于发出 HTTP 请求
  • jsdom: 对 HTML 解析很有帮助
  • csv-writer:将提取的数据存储到 csv 文件中

要安装上述软件包,只需在项目终端使用以下命令行:npm install got jsdom csv-writer

2.设置请求参数

在这里,我们将指定要抓取的网站的 URL(在我们的例子中是Yell),当然还有访问密钥,以便 WebScrapingAPI 能正常工作。

const url = "https://www.yell.com/ucs/UcsSearchAction.do?keywords=restaurants%26location=United+Kingdom%26scrambleSeed=1024089043"
const params = {
api_key: "XXXXX",
url: url
}

3.提出请求

const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})

我们将根据之前设置的参数向 WebScrapingAPI 提出请求,并收到包含原始 HTML 页面的响应。接下来,我们要看看如何在 HTML 中找到所需的信息。

4.检查要素

在这里,我们必须浏览我们要抓取的网站,并使用开发工具搜索包含各业务信息的元素,在我们的例子中,每个项目都有 "businessCapsule--mainRow"类。

博客图片
博客图片

在上面展示的图片中,我们深入业务项目元素,观察到每个业务的名称都位于 "businessCapsule--name"类标签中。

重复这一过程,我们会在 "business--telephoneNumber"类元素中找到电话号码,而平均评分和总评分则分别在 "startRating--average"和 "starRating--total"类元素中找到。

5.解析 HTML

JSDOM 将帮助我们解析 WebScrapingAPI 提供的信息,因为它将返回 HTML 格式的完整页面。

const {document} = new JSDOM(response.body).window

6.筛选结果

在这一阶段,我们将遍历所有具有 "businessCapsule--mainRow"类的元素,并从前面提到的元素中提取信息。提取的数据将作为对象添加到列表中。

const relatedElements = document.querySelectorAll('.businessCapsule--mainRow')
relatedElements.forEach(el => {
const businessName = el.querySelector('.businessCapsule--name')
const businessRatingAverage = el.querySelector('.starRating--average')
const businessRatingTotal = el.querySelector('.starRating--total span')
const businessContact = el.querySelector('.business--telephoneNumber')
leads.push({
businessName: businessName ? businessName.innerHTML : 'No business name',
businessRatingAverage: businessRatingAverage ? businessRatingAverage.innerHTML : 'No ratings',
businessRatingTotal: businessRatingTotal ? businessRatingTotal.innerHTML : 'No ratings',
businessContact: businessContact ? businessContact.innerHTML : 'No phone number'
})
})

7.存储数据

将数据存储到 csv 文件中听起来是个不错的解决方案,而这正是 csv-writer 可以帮助我们的地方。我们需要在路径参数和标题参数中指定 csv 文件的路径和名称,并指定一个对象列表。每个对象将代表 csv 文件中的一列。这些对象的title属性代表每一列的标题,而id属性则需要与线索列表中对象的属性相匹配。

现在,如果我们用一个异步函数来封装整个代码,并添加一个循环来搜索企业的前 5 页,代码应该是这样的:

const {JSDOM} = require("jsdom");
const got = require("got");

(async () => {

const leads = []
const nrPages = 5

for (let page = 1; page <= nrPages; page++) {
const url = "https://www.yell.com/ucs/UcsSearchAction.do?keywords=restaurants%26location=United+Kingdom%26scrambleSeed=1024089043%26pageNum=" + page
const params = {
api_key: "XXX",
url: url
}
const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})
const {document} = new JSDOM(response.body).window
const relatedElements = document.querySelectorAll('.businessCapsule--mainRow')

if (relatedElements) {
relatedElements.forEach(el => {
const businessName = el.querySelector('.businessCapsule--name')
const businessRatingAverage = el.querySelector('.starRating--average')
const businessRatingTotal = el.querySelector('.starRating--total span')
const businessContact = el.querySelector('.business--telephoneNumber')
leads.push({
businessName: businessName ? businessName.innerHTML : 'No business name',
businessRatingAverage: businessRatingAverage ? businessRatingAverage.innerHTML : 'No ratings',
businessRatingTotal: businessRatingTotal ? businessRatingTotal.innerHTML : 'No ratings',
businessContact: businessContact ? businessContact.innerHTML : 'No phone number'
})
})
}
}

const csvWriter = require('csv-writer').createObjectCsvWriter({
path: 'leads.csv',
header: [
{id: 'businessName', title: 'Business Name'},
{id: 'businessRatingAverage', title: 'Business Average Rating'},
{id: 'businessRatingTotal', title: 'Business No. of Ratings'},
{id: 'businessContact', title: 'Business Phone Number'},
]
})

csvWriter.writeRecords(leads).then(() => console.log('Success!!'))

})();

成功了

博客图片

干得好!您已经完成了潜在线索的信息收集工作。

让 WebScrapingAPI 成为您企业的好朋友

这是一种快速创建您自己的线索和潜在业务合作伙伴库的方法。除了生成潜在客户外,WebScrapingAPI 还能在其他情况下为您提供帮助。您可以在我们的博客上了解更多信息

根据您的项目,WebScrapingAPI 有多种套餐可满足您的需求。如果您还不了解我们的产品对您的业务有何帮助,为什么不先试试免费计划呢?它提供1000 次免费 API 调用,让您轻松上手。

新闻和更新

订阅我们的时事通讯,了解最新的网络搜索指南和新闻。

We care about the protection of your data. Read our <l>Privacy Policy</l>.Privacy Policy.

相关文章

缩图
指南如何网络抓取 Google 地图位置结果

了解如何使用 Node.js 通过我们的 API 搜刮 Google 地图的地点结果:分步指南、专业搜刮器优势等。轻松获取 data_id、坐标并构建数据参数。

安德烈-奥吉奥兰
作者头像
安德烈-奥吉奥兰
9 分钟阅读
缩图
指南如何网络抓取 Yelp.com(2023 年更新)--分步指南

通过我们的更新指南,了解如何从 Yelp.com 搜刮商业数据。获取 2023 年网络搜刮 Yelp 的分步说明和技巧。

Raluca Penciuc
作者头像
Raluca Penciuc
8 分钟阅读
缩图
使用案例如何使用 WebScrapingAPI 收集 Yelp 数据

如果您想获得竞争对手的数据,很少有网站能像 Yelp 一样有价值。有了 WebScrapingAPI,获取这些数据易如反掌。

罗伯特-斯菲奇
作者头像
罗伯特-斯菲奇
7 分钟阅读