抓取数据并直接在响应中返回。
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "www.linkedin.com/in/bulentakar"
}
],
"custom_output_fields": "url|about.updated_on"
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = {
"input": [{ "url": "www.linkedin.com/in/bulentakar" }],
"custom_output_fields": "url|about.updated_on"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: [{url: 'www.linkedin.com/in/bulentakar'}],
custom_output_fields: 'url|about.updated_on'
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/datasets/v3/scrape",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
[
'url' => 'www.linkedin.com/in/bulentakar'
]
],
'custom_output_fields' => 'url|about.updated_on'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}"
response = http.request(request)
puts response.read_body"OK"{
"snapshot_id": "s_xxx",
"message": "您的请求仍在处理中,无法在此调用中检索。请使用提供的 Snapshot ID 通过监控快照端点跟踪进度,并在准备好后通过下载快照端点获取数据。"
}Scraper API
同步请求
该端点允许用户高效获取数据,并确保与其应用程序或工作流的无缝集成。
POST
/
datasets
/
v3
/
scrape
抓取数据并直接在响应中返回。
curl --request POST \
--url https://api.brightdata.com/datasets/v3/scrape \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"input": [
{
"url": "www.linkedin.com/in/bulentakar"
}
],
"custom_output_fields": "url|about.updated_on"
}
'import requests
url = "https://api.brightdata.com/datasets/v3/scrape"
payload = {
"input": [{ "url": "www.linkedin.com/in/bulentakar" }],
"custom_output_fields": "url|about.updated_on"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
input: [{url: 'www.linkedin.com/in/bulentakar'}],
custom_output_fields: 'url|about.updated_on'
})
};
fetch('https://api.brightdata.com/datasets/v3/scrape', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.brightdata.com/datasets/v3/scrape",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'input' => [
[
'url' => 'www.linkedin.com/in/bulentakar'
]
],
'custom_output_fields' => 'url|about.updated_on'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.brightdata.com/datasets/v3/scrape"
payload := strings.NewReader("{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.brightdata.com/datasets/v3/scrape")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.brightdata.com/datasets/v3/scrape")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"input\": [\n {\n \"url\": \"www.linkedin.com/in/bulentakar\"\n }\n ],\n \"custom_output_fields\": \"url|about.updated_on\"\n}"
response = http.request(request)
puts response.read_body"OK"{
"snapshot_id": "s_xxx",
"message": "您的请求仍在处理中,无法在此调用中检索。请使用提供的 Snapshot ID 通过监控快照端点跟踪进度,并在准备好后通过下载快照端点获取数据。"
}工作原理
此同步 API 端点允许用户在发送抓取请求时,实时直接在响应中获取结果,例如在终端或应用程序中,无需外部存储或手动下载。此方式通过消除额外的结果获取步骤,使数据采集过程更加高效。 你可以使用format 参数指定所需的输出格式。如果未提供格式,响应将默认使用 JSON。
超时限制
请注意,此同步请求受 1 分钟超时限制。如果数据获取过程超过此限制,API 将返回 HTTP 202 响应,表示请求仍在处理中。在这种情况下,你将收到一个快照 ID,可通过“监控快照(Monitor Snapshot)”和“下载快照(Download Snapshot)”端点以异步方式监控并获取结果。 超时情况下的示例响应:202
{
"snapshot_id": "s_xxx",
"message": "Your request is still in progress and cannot be retrieved in this call. Use the provided Snapshot ID to track progress via the Monitor Snapshot endpoint and download it once ready via the Download Snapshot endpoint."
}
授权
在 Authorization 头中使用您的 Bright Data API Key 作为 Bearer token。
认证方法:
- 从 Bright Data 账户设置获取您的 API Key: https://brightdata.com/cp/setting/users
- 在请求的 Authorization 头中包含 API Key
- 格式:
Authorization: Bearer YOUR_API_KEY
示例:
Authorization: Bearer b5648e1096c6442f60a6c4bbbe73f8d2234d3d8324554bd6a7ec8f3f251f07df
了解如何获取 Bright Data API Key: https://docs.brightdata.com/cn/api-reference/authentication#如何生成新的-api-key?
查询参数
触发数据采集的数据集 ID
输出列列表,用 | 分隔(例如:url|about.updated_on)。仅包含指定字段的响应。
示例:
"url|about.updated_on"
在结果中包含错误报告
指定响应格式(默认: ndjson)
可用选项:
ndjson, json, csv 请求体
application/json
响应
成功
The response is of type string.
示例:
"OK"
此页面对您有帮助吗?
⌘I