Bright Data Unlocker + AWS S3 Node.js 示例

本项目演示如何使用 Bright Data 的 Unlocker API 抓取网页内容,并将结果以 Node.js 的方式存储到 AWS S3 存储桶中。

https://github.com/user-attachments/assets/95b2dbe1-3612-471a-b8b1-95c578f0b8f8

功能

  • 通过 Bright Data 的 Unlocker API 获取网页内容
  • 将抓取的数据以 JSON 形式存储到 AWS S3
  • 通过环境变量进行简易配置

先决条件

  • Node.js(建议 v14 或更高)
  • 具备 S3 访问权限的 AWS 账号(含凭据)
  • Bright Data 账号

快速开始

1. 克隆仓库

sh 复制代码
git clone <your-repo-url>
cd <your-repo-directory>

2. 安装依赖

sh 复制代码
npm install

3. 配置环境变量

复制示例环境文件并填写你的凭据:

sh 复制代码
npm run init-env

然后编辑新创建的 .env 文件,设置实际的 API 密钥与配置项:

  • BRIGHT_DATA_API_TOKEN:你的 Bright Data API token(点此获取
  • BRIGHT_DATA_ZONE:你的 Bright Data Unlocker 区域(zone)(点此获取
  • AWS_S3_BUCKET:你的 AWS S3 存储桶名称
  • AWS_REGION:你的 AWS 区域(例如 us-east-1
  • AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY:你的 AWS 凭据(若未使用 IAM 角色)

4. 运行脚本

sh 复制代码
node index.js

工作原理

  • 脚本通过 Bright Data 的 Unlocker API 请求目标 URL。
  • 响应结果作为 JSON 文件保存到你指定的 S3 存储桶。
  • 文件名带时间戳,并包含目标 URL 的哈希以保证唯一性。

自定义

  • 根据需要在 index.js 或通过环境变量修改 targetUrlformat
  • 如需调整 S3 存储路径或元数据,可在 uploadToS3 函数中修改。

AWS S3 用户角色权限

为使脚本能够向你的 S3 存储桶上传数据,你的 AWS 凭据(或 IAM 角色)必须具备相应权限。请使用 AWS IAM 创建并管理这些权限。

IAM 策略示例

以下为授予向特定 S3 存储桶上传与读取对象权限的示例策略:

json 复制代码
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject"
      ],
      "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/*"
    }
  ]
}
  • YOUR-BUCKET-NAME 替换为你的实际 S3 存储桶名称。
  • 将此策略附加到你在 .env 中使用其凭据的 IAM 用户或角色。

更多详情请参见 Bright Data 关于 AWS S3 用户角色权限的文档

相关推荐
Bright Data5 天前
Bright Data Web Unlocker Node.js 项目
网页爬虫·网页数据·网页解锁
Bright Data2 个月前
DuckDuckGo 搜索爬取器
爬虫·serp·网页数据
Bright Data3 个月前
社交媒体数据集示例
数据集·网页爬虫·社交媒体·网页数据
一晌小贪欢7 个月前
Python 爬虫进阶:如何利用反射机制破解常见反爬策略
开发语言·爬虫·python·python爬虫·数据爬虫·爬虫python
流㶡7 个月前
网络爬虫之requests.get() 之爬取网页内容
python·数据爬虫
亿牛云爬虫专家1 年前
NLP驱动网页数据分类与抽取实战
python·分类·爬虫代理·电商·代理ip·网页数据·www.goofish.com
马哥python说3 年前
【爬虫实战】用Python采集任意小红书笔记下的评论,爬了10000多条,含二级评论!
python·网络爬虫·数据采集·python爬虫·采集数据·网页爬虫·python爬虫实战·爬虫教程·爬虫开发·数据爬虫·抓取数据