20
头图

前言

在当今时代,数据采集的重要性不言而喻。

比如爬取社交网站信息,可以做舆论监控、热点追踪。爬取电商网站,可以跟踪潮流、发现优惠、进行品牌分析。爬取招聘网站信息,求职者可以找到符合需求的公司,公司可以发现符合需求的人才。爬取指定网站,更是可以对网站的用户、内容等做分析,针对性制定策略。

尤其是现在,人工智能(AI)迅猛发展,大数据和大模型已经成为推动技术进步的重要驱动力。数据采集的质量和效率直接影响着人工智能模型的性能,是推动 AI 发展的基础性工作。

然而数据采集说简单也简单,说复杂也复杂。数据采集从步骤上来说,其实就分 2 步:

  1. 数据爬取:根据设定的程序在网络上搜索指定信息
  2. 数据采集:将信息从网站中提取出来,存放到数据库

如果是一般的小网站,简单写点代码也许就可以直接爬取了。但如果是中大型网站(比如微博、知乎、小红书、思否),往往都会设置反爬策略:

有的会根据 IP 进行限制,排除掉某些地域的 IP 或者如果某个 IP 短时间内过度频繁访问就进行限制。有的会根据 User-Agent 进行判断,有的则会使用 JS 对数据进行加密从而保护数据。

甚至有些网站还会给爬虫“埋坑”,故意设置一些陷阱 URL 写在 HTML 元素中,但是会将其隐藏(比如设置 visibility: 0、display: none 等)。正常用户自然无法访问这些 URL,但爬虫可以看到,当进行访问的时候,就会被判断为爬虫并进行封禁……

爬虫与反爬虫的“攻防”可谓是魔高一尺、道高一丈,不知不觉也拉高了我们数据采集的门槛。且不说中大型网站本身数据量就比较大,不断有数据产生,还需要实时爬取,加上这么多反爬策略一个个攻破也要花费不少时间。所以从头实现数据采集的成本其实是非常高的。

这个时候就需要借助功能强大、安全稳定、合规可靠的平台来实现。

这就要说到本篇的主题 —— Bright Data。

亮数据(Bright Data) 成立于 2014 年,前身为 Luminati,为中国跨境电商提供多年优质服务,总部位于以色列,在纽约设有分公司,全球约 400 名员工(还在不断壮大中)。公司有超 2000 个专利申报和计数,多项专利技术支持的产品,让技术小白或零代码知识者也能实现自动自由采集网页数据。

除了产品本身比较老牌、知名之外,之所以选择亮数据,是考虑到这些优势:

  1. 代理 IP 数量众多且种类丰富。比如动态住宅 IP、静态住宅 IP、移动 IP、机房代理 IP 等,覆盖全球 195 个国家,拥有超过 7200 万 IP 资源
  2. 提供了自定义爬取数据的多种服务和工具。如 Web Unlocker、Scraping Browser、Web Scraper IDE 等,尤其是 Web Unlocker 和 Scraping Browser,自带爬虫解锁工具,模拟真实的浏览器指纹、进行 IP 代理和轮换、自动识别和处理验证码,模拟真实的用户操作,有效应对反爬措施,可大大提高数据采集成功率
  3. 对于常见的网站如 Facebook、Instagram、Pinterest、Tiktok、Youtube、Amazon、Lazada 等,亮数据提供了现成的合规采集的数据集,可直接进行筛序、分析、下载

    功能介绍

    平台地址:https://www.bright.cn/proxy-types/?utm_source=brand&utm_campaign=brnd-mkt_cn_sf_yayu

亮数据主要提供的是代理服务和爬虫工具,主界面就展示了提供的 4 种代理类型和 3 种爬虫工具:

image_副本.jpg

4 种代理类型

亮数据提供 4 种类型的代理网络:

  1. Datacenter proxies(数据中心代理)

又被称为机房代理,由机房服务器分配 IP,流量通过机房代理路由。由于行程更短,架构简化,机房代理是最快最具成本效益的代理类型。

适用于:

  1. 访问屏蔽方法不复杂的网站
  2. 性价比最高的代理网络
  3. Residential Proxies(住宅代理)

住宅代理是指源自移动电话或家用电脑等住宅设备的 IP 地址。有了这种 IP,你就可以像真人一样查看或采集相关数据。

适用于:

  1. 以真实用户的身份浏览复杂的目标网站
  2. 商业情报、竞争对手分析和广告验证
  3. 使用机房代理网络时成功率较低或遭到网页屏蔽时
  4. ISP Proxies(ISP 代理)

ISP 代理又被称为静态住宅代理,与住宅代理不同的是,ISP 代理是一种关联到互联网服务提供商(ISP)但不涉及终端用户的中间 IP 地址。换句话说,它们托管在服务器上而不是住宅设备(如手机或台式电脑)上。

ISP 结合了机房代理和住宅代理的优点。因为 ISP 代理是匿名和静态,所以常被用于电子商务网站上,比如购物或者是创建社交媒体帐户,或是在电子商务网站上创建社交媒体帐户。

适用于:

  1. 像真人用户一样访问难以访问的网站
  2. 查看内容、执行广告验证、质量保证、营销等
  3. 使用机房代理网络时成功率较低或遭到网页屏蔽时
  4. Mobile Proxies(移动代理)

使用移动设备访问网络,这些移动住宅 IP 由互联网服务提供商分发,可以使用 3G/4G 移动 IP 像真实用户一样访问互联网。支持 ASN、运营商和移动网络定位。简单的来说,就是在动态住宅代理的基础上,强调移动设备。

适用于:

  1. 像真实用户使用手机访问网站一样浏览复杂的目标网站
  2. 商业情报、竞争对手分析、广告验证、应用程序质量保证等

    3 种爬虫工具

    亮数据提供 3 种爬虫解决方案:

  3. Web Unlocker(亮网络解锁器)

image.png

亮网络解锁器旨在管理整个代理和解锁基础架构,让用户能够专注于数据采集。

当发送带目标网站的代理请求后,亮网络解锁器会返回干净的 HTML/JSON。而在背后,亮网络解锁器智能算法会负责整个变化流程:寻找最佳代理网络、自定义标头、识别指纹、解决验证码等。它的特点在于使用简单:

  1. 不受屏蔽从任何网站抓取数据;
  2. 模拟真实用户的网络行为并访问使用了复杂检测方法的目标网站

Web Unlocker 适用于比较简单的页面抓取。如果需要与浏览器交互,可以使用第二个解决方案。

  1. Scraping Browser(亮数据浏览器)

image.png

Scraping Browser,是亮数据自定义的浏览器,可以从网站上爬取我们需要的所有数据。使用这种自定义浏览器的好处在于可以从架构层面解决一些问题比如解除安全屏蔽、验证码等问题。

有了浏览器,还需要你编写一些代码(比如使用 puppeteer 和 node.js)访问和导航目标网站,从中提取所需的数据。亮数据提供了很多示例,我们也会在实战中写一个爬虫例子。

  1. SERP API

image.png

SERP API 是专门针对搜索引擎的解锁解决方案,支持所有主要的搜索引擎:谷歌、必应、Yandex、DuckDuckGo 和百度。搜索引擎会不断改变其 SERP 结构和算法。搜索引擎结果页面也是动态的,这意味着用户看到的结果会取决于各种因素,例如用户的搜索历史记录、设备和位置。

亮数据 SERP API 为所有主要搜索引擎提供大量真实用户的搜索结果。它支持各种定制的搜索参数,搜索结果数据将以 JSON 或 HTML 形式输出。无需再担心网页屏蔽,让用户可以专注于提取所需数据且快速准确完成。

实战应用

废话说了这么多,只是帮助大家理解采集数据的基本概念和工具,让大家能够选择合适的代理类型和解决方案。接下来我们还是以实战为例,和大家讲解具体该怎么使用。

1. 使用 Web Scraper IDE 采集跨境电商数据

Amazon(亚马逊)是网络上最早开始经营电子商务的公司之一,目前已成为全球最大的互联网线上零售商之一。正所谓知彼知己,百战不殆,在商业决策中,我们经常需要爬取竞争对手的产品价格、头图、文案等信息,或是掌握价格变化,打好价格战,或是分析产品特点,优化文案介绍等等。

那么我们该如何快速实现一个爬虫,能够每天定时爬取指定商品的价格、描述等信息呢?

亮数据的 Web Scraper IDE 可以很好的解决这个问题。

Web Scraper IDE 是亮数据专门用于开发爬虫的线上 IDE。简单的来说,你可以在亮数据平台创建一个自定义的爬虫项目,使用 JavaScript 编写代码,并进行在线测试、预览。完成爬虫后,还可以设置该爬虫的运行方式(比如每周的周几运行)、交付类型(是生成 JSON 还是 Excel CSV 等方式)等,而且还支持 API 调用。

使用 Web Scraper IDE 适合于有一定开发基础的同学自定义数据集,它会提供最大的灵活度。当然没有开发过的同学也不用害怕,Web Scraper IDE 提供了丰富的示例代码和文档,上手也很快。

所以我们以爬取亚马逊网站上的指定产品的数据为例,带大家了解如何使用 Web Scraper IDE。

https://www.bilibili.com/video/BV1hZG8efEqQ/?aid=112596007061...

打开「数据收集器」页面,选择「我的数据收集器」,然后点击「开发网络爬虫(IDE)」:

截屏2024-05-28 17.53.44.png

此时会进入选择示例代码界面:

截屏2024-05-28 21.50.18.png

其实从头写也并不复杂,这里我们直接使用现有的 Amazon Products 模板,点击上图中的「Use template」,就会进入 IDE 界面:

截屏2024-05-28 21.54.29.png

界面并不复杂,从上到下各模块职责清晰。这里的示例代码实现的是爬取输入的亚马逊商品页面的商品数据。我们可以随意找一个亚马逊的商品测试,当然使用示例的地址也可以,点击「预览」测试代码的效果:

截屏2024-05-28 22.04.43.png

首先会进入 Run log 选项,显示爬取日志,最后会进入 Output 选型,查看输出的结果。这里返回的是一个我们自定义的 JSON 数据:

截屏2024-05-28 22.07.20.png

点击右上角的「完成编辑」会进入最后的设置页面:

截屏2024-05-28 22.09.51.png

在这里可以输入要监控的商品具体 URL。少量的商品页面可以直接添加,大量的商品页面支持 CSV 导入。

除此之外,还可以设置爬虫的爬取时间:

image.png

还支持设置数据格式和通知方式:

image.png

比如如果你的文档格式选择了 CSV 格式,交付路径选择了电子邮件。爬虫爬取完毕后,会发一封邮件将爬取的数据以 CSV 附件的形式发送。是不是很方便?

当然一种更为有用的方式是 「通过 API 初始化」:

image.png

注意这里的命令需要使用 API_TOKEN,你可以到 「设置」-「账户设置」-「API 令牌」页面生成一个 Token,有了 Token,再使用这段命令。比如我这里直接在命令中调用:
image.png

这就创建了一个爬虫工作,它会返回一个 collection_id,我们可以根据此 id 查询当前的工作状态和最终的结果。我们再调用第二个命令:

image.png

第一次调用的时候状态是 "collecting",表示工作正在进行中。第二次调用的时候状态是 "building",表示数据正在构建,第三次调用的时候返回了最终的数据。

简单的来说,使用 API 既可以触发爬虫的工作,又可以根据返回的 collection_id 查询工作的状态和最终的数据。

2. 使用 Scraping Browser 采集新闻资讯

如果要为 AI 实现时事新闻功能,就需要采集新闻资讯喂给 AI。如何采集新闻资讯等信息呢?

亮数据提供了亮数据浏览器(Scraping Browser)用于自定义采集数据。使用亮数据浏览器的好处在于利用内置解锁功能和代理一体的爬虫浏览器,大规模轻易解锁网站,抓取数据。

简单的来说,我们可以在亮数据平台配置一个亮数据浏览器,将其作为代理浏览器爬取数据。对于熟悉 JavaScript 的同学,可以使用 Puppeteer 实现爬虫代码。我们就以爬取网易 163 新闻为例,讲解如何使用 Scraping Browser。

https://www.bilibili.com/video/BV1MAGhexEVH/?page=1

选择「亮数据浏览器」:

截屏2024-05-29 20.41.05.png

填写一个命令作为标示:

image.png

然后就可以看到代理浏览器的账号和密码:

截屏2024-05-29 20.42.50.png

右下角的 Check out code 可以查看示例的代码,帮助我们编写代码。提供了 Node.js、Python、C#、Java 四种语法和 Puppeteer、playwright、Selenium 三种库的示例代码。

我们新建一个项目:

mkdir scrape-browser && cd scrape-browser
npm init
npm i puppeteer-core

新建 app.js,代码如下:

const puppeteer = require('puppeteer-core');

const SBR_WS_ENDPOINT = 'wss://brd-customer-hl_17bae1f6-zone-scrapy-country-cn:xsjrc9oprl5s@brd.superproxy.io:9222';

async function main() {
  console.log('Connecting to Scraping Browser...');
  const browser = await puppeteer.connect({
    browserWSEndpoint: SBR_WS_ENDPOINT,
  });
  try {
    const page = await browser.newPage();
    console.log('Connected! Navigating to https://news.163.com/...');
    await page.goto('https://news.163.com/');
    console.log('Navigated! Scraping page content...');
    const html = await page.content();
    // console.log(html)

    const newsList = await page.$$(".news_title h3 a");
    const newsData = [];

    for (let news of newsList) {
      const title = await news.evaluate((el) => el.innerText);
      const link = await news.evaluate((el) => el.href);
      newsData.push({ title, link });
    }
    console.log(newsData);
  } finally {
    await browser.close();
  }
}

main().catch(err => {
  console.error(err.stack || err);
  process.exit(1);
});

此时运行 node app.js,运行效果如下:

image.png

我们就成功抓取了今日的新闻标题和链接。然后再根据新闻链接抓取具体文章的内容,下载下来喂给大模型进行训练即可。

3. 使用已有数据集进行可视化分析

除了自己进行自定义抓取,对于常见的大型网站如 Facebook、Instagram、Pinterest、Tiktok、Youtube、Amazon、Lazada 等众多网站,亮数据都有抓取的数据集,你可以直接使用已有的数据集,就比如 Facebook 的 文章数据集:

image.png

https://www.bilibili.com/video/BV1ucGheoEC6/

比如我是个广告主,我想分析出这两年最火的 Youtube 油管主投放广告,我就可以选择 YouTube - Profiles 数据集:

截屏2024-05-29 20.53.40.png

点击筛选器选择条件:

截屏2024-05-29 20.55.46.png

这里我们选择的是 2023 年 1 月 1 日之后创建账号然后订阅数超过 100W 的油管主,筛选处理后,点击 Download sample 就可以直接下载数据:

截屏2024-05-29 20.57.16.png

因为选择的是 CSV 格式,所以下载后使用 EXCEL 打开查看:

image.png

有了数据,再利用可视化数据对这些数据进行分析即可。

总结

在数据采集领域,一个稳定、高效且灵活的解决方案对于企业和开发者来说至关重要。亮数据不仅提供了高效、安全的数据采集服务,还通过其用户友好的界面和强大的技术支持,让数据采集变得简单而高效。

尤其是当下,AI 大模型盛行,如果要实现垂直领域的大模型,更需要专门采集数据进行训练。亮数据是一个非常值得尝试的平台。此外平台注册时会送 5 美元,可以用此余额进行各种测试和试用。

亮数据平台地址:https://www.bright.cn/proxy-types/?utm_source=brand&utm_campaign=brnd-mkt_cn_sf_yayu


冴羽
9.3k 声望6.3k 粉丝