评估ISP 代理
需要一个网络身份.
您的合格公开工作流程有相关步骤或重复观察,如果改变身份,则会破坏预期的测试或会议设计.
你的代理客户已经在你的控制之下.
您可以定义清晰的工作流程和会议界限.
在生产使用前,您将测试target的行为.
适合买家
评估ISP 代理
您的合格公开工作流程有相关步骤或重复观察,如果改变身份,则会破坏预期的测试或会议设计.
你的代理客户已经在你的控制之下.
您可以定义清晰的工作流程和会议界限.
在生产使用前,您将测试target的行为.
在设计前确认
在评估和配置期间确认终端点,协议,身份验证,地理,身份分配,轮换或替换行为,可用性和定价.
提供代表性资格的公众 target
文件恢复,当连续性发生变化时.
审查服务协议.
比较其他路线
对于可接受的路线变化或与ISP相关的身份不属于工作负载要求时,请比较Residential和数据中心代理.
提供控制
为采集程序设置国家、会话和身份验证选项。确认套餐支持的位置及连接信息。
使用提供时提供的确切主机,端口,凭证和身份验证方法.本页面没有发布任何ISP终端点.
在评估过程中确认支持的代理协议,然后在您将运行的HTTP客户端,浏览器或爬虫器中测试它.
在建立任何依赖位置的路由或测试逻辑之前,确认当前的地理位置和帐户可用性.
确认评估的报价如何分配,保留,转换或更换身份.不要从另一个代理类别推断时间或转换规则.
会议连续性
静态-住宅类别只有应用程序有明确的会议界限时才有用.确认预定行为,然后在身份变化时,确保重试和恢复安全.
连续性合同
描述需要一个网络身份的相关公众请求以及完成或放弃工作流的条件.
相关的第一项公开请求
只有确认行为
工作流程的完成或恢复
Application sequence
开始一个有限的工作流程,使用预定的路线.
对于相关请求,再使用已确认的配置.
检查target的响应,然后停止在意料之外的状态.
使用限制的重复尝试或在连续性发生变化时开始新的工作流程.
开发人员集成
这些通用例子显示了一个配置的代理配置属于哪里.它们不发布或暗示WSAISP终端点,协议,地理或身份验证方法.
export WSA_ISP_PROXY_URL="<PROVISIONED_PROXY_URL>"
curl --proxy "$WSA_ISP_PROXY_URL" \
--request GET "https://example.com/public-page"import { ProxyAgent, fetch } from "undici";
const proxyUrl = process.env.WSA_ISP_PROXY_URL;
if (!proxyUrl) throw new Error("Missing WSA_ISP_PROXY_URL");
const response = await fetch("https://example.com/public-page", {
dispatcher: new ProxyAgent(proxyUrl),
});
if (!response.ok) throw new Error("Target returned " + response.status);
console.log(await response.text());import os
import requests
proxy_url = os.environ["WSA_ISP_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_ISP_PROXY_URL");
if (!$proxyUrl) throw new RuntimeException("Missing WSA_ISP_PROXY_URL");
$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_ISP_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.*;
import java.time.Duration;
public class IspProxyExample {
public static void main(String[] args) throws Exception {
var host = System.getenv("WSA_ISP_PROXY_HOST");
var port = System.getenv("WSA_ISP_PROXY_PORT");
var username = System.getenv("WSA_ISP_PROXY_USERNAME");
var password = System.getenv("WSA_ISP_PROXY_PASSWORD");
if (host == null || port == null || username == null || password == null) {
throw new IllegalStateException("Missing provisioned ISP 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()
);
}
})
.connectTimeout(Duration.ofSeconds(30))
.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 proxyUrl = Environment.GetEnvironmentVariable("WSA_ISP_PROXY_URL")
?? throw new InvalidOperationException("Missing WSA_ISP_PROXY_URL");
var proxyUser = Environment.GetEnvironmentVariable("WSA_ISP_PROXY_USERNAME")
?? throw new InvalidOperationException("Missing WSA_ISP_PROXY_USERNAME");
var proxyPassword = Environment.GetEnvironmentVariable("WSA_ISP_PROXY_PASSWORD")
?? throw new InvalidOperationException("Missing WSA_ISP_PROXY_PASSWORD");
var proxy = new WebProxy(new Uri(proxyUrl)) {
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_ISP_PROXY_SERVER;
const username = process.env.WSA_ISP_PROXY_USERNAME;
const password = process.env.WSA_ISP_PROXY_PASSWORD;
if (!server || !username || !password) {
throw new Error("Missing provisioned ISP 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
WSA运行代理路线,以及评估和配置期间确认的帐户特定连接和身份行为.
您的团队
您的团队拥有源资格, target选项,收藏器,请求政策,时间限制,重试,分析,存储,质量检查和下游使用.
评估
提供代表性的可接受公共资源和连续性要求.
提供
记录确认的终点,协议,地理,身份行为和术语.
集成
服务器端客户端使用保护的连接值来限制工作流程.
运行
您的团队处理响应,重新尝试,分析,存储和恢复.
仅用于符合条件的公共网页. 审查源条款,适用的要求和服务协议产品使用前验证请求和回收行为.
使用情况
代理选择
决定 | 住宅 | 数据中心 | 提供商 |
|---|---|---|---|
网络身份 | 住宅网络身份 | 数据中心起源身份 | 与ISP相关的静态住宅身份 |
基础设施的历史 | 住宅网络参与 | 数据中心基础设施 | 在数据中心基础设施上托管的身份 |
连续性适应 | 评估路线变化是什么时候可接受或是什么时候需要的 | 评估数据中心身份是否符合符合条件的target | 评估相关请求需要一个网络身份时 |
提供详细信息 | 确认目前的控制和条件 | 确认目前的控制和条件 | 确认终端点,协议,地理位置,分配,轮换,可用性和定价 |
向水平,将三个代理类别进行比较.
价格和储备
FAQ
ISP 代理使用ISP相关的静态住宅网络身份,这些网络在数据中心基础设施上托管.
您的团队拥有 target的选择,收藏者,请求政策,重新尝试,分析,存储和质量决定. WebScrapingAPI仅运行代理路线和供应行为,为报价达成协议.
仅使用提供时提供的终端点,身份验证方法,协议和客户端字段.本页面故意使用通用环境变量位持有人,并且不发布ISP终端点.
在设计基于位置的行为之前,在评估过程中确认您的帐户和预期工作流的符合条件的位置.
该类别围绕ISP相关或静态住宅身份设计,但在评估和配置期间,必须确认分配方法,连续性,轮换选项和替代行为.
联系WebScrapingAPI以了解您预期的公共来源,工作流程,地理位置,流量配置和连续性需求. WSA将确认目前的可用性,供应细节,商业条款和评估的报价.