强大的评价候选人
你的收藏器已经是你的操作.
在评估数据中心原始路线时,保持HTTP客户端,浏览器或爬虫器,以实现稳定可重复的工作负载.
代表 targets接受数据中心流量.
需求已被充分理解,以满足产能范围.
你的团队拥有重试,分析,存储和质量.
数据中心代理
在目标网站接受数据中心流量时,通过数据中心代理进行大规模采集。客户端、解析和存储仍由您掌控。
适合买家
强大的评价候选人
在评估数据中心原始路线时,保持HTTP客户端,浏览器或爬虫器,以实现稳定可重复的工作负载.
代表 targets接受数据中心流量.
需求已被充分理解,以满足产能范围.
你的团队拥有重试,分析,存储和质量.
在规模之前验证
在承诺分配之前,测试代表性合格的公开页面,成功标准,响应处理和保守的请求行为.
审查来源条款和预期使用.
测量收藏员收到的target的回复.
现在的报价和工作量相匹配.
如果需要,选择另一条路径
如果身份类别重要,请评估住宅或ISP 代理或网络访问API,
提供控制
为采集程序设置国家、会话和身份验证选项。确认套餐支持的位置及连接信息。
分享基线,峰值窗口和连续性要求,以便拟议的容量和分配模型与您的工作负载相匹配.
仅使用在配置过程中提供的帐户特定端点和身份验证方法.
通过支持的协议来查看您的帐户,然后检查配置配置是否清洁地映射到您的代理客户端.
处理数据中心原产身份作为已知类别. 使用可供预定路线的地理选项和选择行为.
产能和连续性
您的收藏器定义了同时,时间过期和重新尝试行为. 调整预定分配和任何转换,持久性或会议行为与这些要求.
Collector brief
Provisioned route
基线测试
执行对符合条件的公众 target的代表性请求.
顶峰窗口测试
练习需求形状,而不绕过收藏器的限制.
失败路径测试
检查时间,再试,退休,停止行为.
开发人员集成
存储帐户特定连接细节在受保护的服务器端环境变量中.这些通用模式故意不会发布或暗示一个WebScrapingAPI终端点.
test -n "$WSA_DATACENTER_PROXY_URL" || exit 1
curl --fail --show-error \
--proxy "$WSA_DATACENTER_PROXY_URL" \
"https://example.com/public-page"import { ProxyAgent, fetch } from "undici";
const proxyUrl = process.env.WSA_DATACENTER_PROXY_URL;
if (!proxyUrl) throw new Error("Missing proxy configuration");
const response = await fetch("https://example.com/public-page", {
dispatcher: new ProxyAgent(proxyUrl),
});
if (!response.ok) throw new Error("Target response was not successful");
console.log(await response.text());import os
import requests
proxy_url = os.environ["WSA_DATACENTER_PROXY_URL"]
response = requests.get(
"https://example.com/public-page",
proxies={"http": proxy_url, "https": proxy_url},
timeout=30,
)
response.raise_for_status()
print(response.text)<?php
$proxyUrl = getenv("WSA_DATACENTER_PROXY_URL");
if (!$proxyUrl) throw new RuntimeException("Missing proxy configuration");
$client = curl_init("https://example.com/public-page");
curl_setopt_array($client, [
CURLOPT_PROXY => $proxyUrl,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
]);
$body = curl_exec($client);
if ($body === false) throw new RuntimeException(curl_error($client));
curl_close($client);
echo $body;package main
import (
"io"
"log"
"net/http"
"net/url"
"os"
"time"
)
func main() {
proxyURL, err := url.Parse(os.Getenv("WSA_DATACENTER_PROXY_URL"))
if err != nil { log.Fatal(err) }
client := &http.Client{
Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)},
Timeout: 30 * time.Second,
}
response, err := client.Get("https://example.com/public-page")
if err != nil { log.Fatal(err) }
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil { log.Fatal(err) }
log.Print(string(body))
}import java.net.*;
import java.net.http.*;
public class DatacenterProxyExample {
public static void main(String[] args) throws Exception {
var host = System.getenv("WSA_DATACENTER_PROXY_HOST");
var port = System.getenv("WSA_DATACENTER_PROXY_PORT");
var username = System.getenv("WSA_DATACENTER_PROXY_USERNAME");
var password = System.getenv("WSA_DATACENTER_PROXY_PASSWORD");
if (host == null || port == null || username == null || password == null) {
throw new IllegalStateException("Missing provisioned Datacenter Proxy values");
}
var address = new InetSocketAddress(host, Integer.parseInt(port));
var client = HttpClient.newBuilder()
.proxy(ProxySelector.of(address))
.authenticator(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
username,
password.toCharArray()
);
}
})
.build();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/public-page"))
.GET()
.build();
System.out.println(client.send(
request, HttpResponse.BodyHandlers.ofString()
).body());
}
}using System.Net;
var proxyHost = Environment.GetEnvironmentVariable("WSA_DATACENTER_PROXY_HOST")
?? throw new InvalidOperationException("Missing WSA_DATACENTER_PROXY_HOST");
var proxyPort = Environment.GetEnvironmentVariable("WSA_DATACENTER_PROXY_PORT")
?? throw new InvalidOperationException("Missing WSA_DATACENTER_PROXY_PORT");
var proxyUser = Environment.GetEnvironmentVariable("WSA_DATACENTER_PROXY_USERNAME")
?? throw new InvalidOperationException("Missing WSA_DATACENTER_PROXY_USERNAME");
var proxyPassword = Environment.GetEnvironmentVariable("WSA_DATACENTER_PROXY_PASSWORD")
?? throw new InvalidOperationException("Missing WSA_DATACENTER_PROXY_PASSWORD");
var proxyUri = new Uri("http://" + proxyHost + ":" + proxyPort);
var proxy = new WebProxy(proxyUri) {
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
using var client = new HttpClient(new HttpClientHandler { Proxy = proxy }) {
Timeout = TimeSpan.FromSeconds(30)
};
Console.WriteLine(await client.GetStringAsync(
"https://example.com/public-page"
));import { chromium } from "playwright";
const server = process.env.WSA_DATACENTER_PROXY_SERVER;
const username = process.env.WSA_DATACENTER_PROXY_USERNAME;
const password = process.env.WSA_DATACENTER_PROXY_PASSWORD;
if (!server || !username || !password) {
throw new Error("Missing provisioned Datacenter Proxy values");
}
const browser = await chromium.launch({
proxy: {
server,
username,
password,
},
});
const page = await browser.newPage();
await page.goto("https://example.com/public-page");
console.log(await page.title());
await browser.close();勿在浏览器提供的代码,公共存储库,截图,分析或客户端日志中暴露终端点或凭证.
运营所有权
客户端负责请求、重试、解析和存储。我们提供代理连接及为账户约定的配置。
WebScrapingAPI
WebScrapingAPI运行提供数据中心原始路线和特定账户连接控制.
您的团队
你的团队拥有target的选择,请求政策,客户端逻辑,同步性,时间,重试,分析,存储和下游质量.
合格
选择符合条件的公共target号,并验证数据中心接受.
提供
设置连接,分配,地理位置和定价范围.
收藏
您的客户通过预定路线发送请求.
运行
您的团队处理重复试验,分析,存储和质量控制.
仅用于符合条件的公共网页. 审查源条款,适用的要求和服务协议后者将采取保守的请求和保留政策.
使用情况
代理选择
决定 | 数据中心 | 住宅 | 提供商 |
|---|---|---|---|
网络身份 | 数据中心原产 IP | 实际住宅IP | 与ISP相关的IP |
买家镜头 | 经济,可预测的高吞吐量适合接受数据中心流量的符合条件的target | 评估工作流需要居住身份 | 评估工作流需要与ISP相关的身份 |
Target接受 | 验证代表 targets 之前的规模 | 验证代表 targets 之前的规模 | 验证代表 targets 之前的规模 |
控制 | 提供供应 | 审查专用产品详细信息 | 提供供应 |
客户所有权 | 收集器,重试,分析和存储 | 收集器,重试,分析和存储 | 收集器,重试,分析和存储 |
向水平,将三个代理类别进行比较.
FAQ
数据中心代理通过数据中心原产 IP 地址向您的代理客户端传输请求.target您的团队控制收集器和响应工作流程.
数据中心原始流量不被每一个 target 接受. 评估代表性合格的公共 target 信息,尊重源条款和请求政策,选择另一个访问路径,当类别不适合.
在配置过程中使用帐户特定的终端点,身份验证方法和支持的协议 WebScrapingAPI,并将每个连接值放在服务器侧.
根据预定配置,可用的地理位置和选择控制权取决于预定配置.
配置模式和任何旋转,持久性或会议行为都取决于预定路线.将路线行为与收藏器的同时和连续性要求进行协调.
价格取决于工作负载的形状,集 target,容量,地理位置和分配需求. 分享一个代表性的工作负载,以便 WebScrapingAPI可以达到正确的路线.