🌐 代理环境说明
为确保脚本在全球范围内稳定访问目标网站,平台会在运行时提供一条加密通道(代理服务器)。脚本无需自行购买或维护代理,只需 读取平台注入的代理认证信息,并在 HTTP 请求中正确配置即可。
📌 代理配置说明
- 协议:
SOCK5 - 域名:
proxy-inner.cafescraper.com:6000 - 认证方式:
- 环境变量名:
PROXY_AUTH - 格式:
username:password
- 环境变量名:
- 费用说明:平台内置提供,无需额外付费或单独配置
🐍 Python 示例
python复制代码复制
import os
import requests
# 1. 代理服务地址
proxyDomain ="proxy-inner.cafescraper.com:6000"
# 2. 获取代理认证信息(平台自动注入)
try:
proxyAuth = os.environ.get("PROXY_AUTH")
print(f"代理认证信息: {proxyAuth}")
except Exceptionas e:
print(f"获取代理认证信息失败: {e}")
proxyAuth =None
# 3. 拼接代理 URL
proxy_url =f"socks5://{proxyAuth}@{proxyDomain}"if proxyAuthelseNone
print(f"代理地址: {proxy_url}")
# 4. 示例业务请求
target_url ="https://ipinfo.io/ip"# 示例接口,可替换为实际目标
try:
proxies =None
if proxy_url:
proxies = {
"http": proxy_url,
"https": proxy_url
}
response = requests.get(
target_url,
proxies=proxies,
timeout=30,
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
)
print(f"请求状态码: {response.status_code}")
print(f"响应内容: {response.text}")
except Exceptionas e:
print(f"请求失败: {e}")
🧱 Go 示例
go复制代码复制
// 1. 代理服务地址
proxyDomain :="proxy-inner.cafescraper.com:6000"
// 2. 获取代理认证信息
proxyAuth := os.Getenv("PROXY_AUTH")
cafesdk.Log.Info(ctx, fmt.Sprintf("代理认证信息: %s", proxyAuth))
// 3. 拼接代理 URL
var proxyURLstring
if proxyAuth !="" {
proxyURL = fmt.Sprintf("socks5://%s@%s", proxyAuth, proxyDomain)
}
cafesdk.Log.Info(ctx, fmt.Sprintf("代理地址: %s", proxyURL))
// 4. 创建 HTTP Client
httpClient := &http.Client{
Timeout: time.Second *30,
}
// 5. 如果存在代理,配置 Transport
if proxyURL !="" {
proxyParsed, err := url.Parse(proxyURL)
if err !=nil {
cafesdk.Log.Error(ctx, fmt.Sprintf("解析代理URL失败: %v", err))
return
}
httpClient.Transport = &http.Transport{
Proxy: http.ProxyURL(proxyParsed),
TLSClientConfig: &tls.Config{
InsecureSkipVerify:true,// 测试环境可用,生产建议关闭
},
}
cafesdk.Log.Info(ctx,"已配置代理客户端")
}
// 6. 示例业务请求
targetURL :="https://ipinfo.io/ip"
req, err := http.NewRequestWithContext(ctx,"GET", targetURL,nil)
if err !=nil {
cafesdk.Log.Error(ctx, fmt.Sprintf("创建请求失败: %v", err))
return
}
resp, err := httpClient.Do(req)
if err !=nil {
cafesdk.Log.Error(ctx, fmt.Sprintf("请求失败: %v", err))
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
ip := strings.TrimSpace(string(body))
cafesdk.Log.Info(ctx, fmt.Sprintf("响应状态码: %d", resp.StatusCode))
cafesdk.Log.Info(ctx, fmt.Sprintf("当前出口 IP: %s", ip))
🟢 Node.js 示例
依赖说明 bash复制代码js复制代码复制npm install axios socks-proxy-agent
复制
import axiosfrom'axios'
import {SocksProxyAgent }from'socks-proxy-agent'
// 1. 代理服务地址
const proxyDomain ='proxy-inner.cafescraper.com:6000'
// 2. 获取代理认证信息
let proxyAuth =null
try {
proxyAuth = process.env.PROXY_AUTH ||null
await cafesdk.log.info(`代理认证信息: ${proxyAuth}`)
}catch (err) {
await cafesdk.log.error(`获取代理认证信息失败: ${err.message}`)
}
// 3. 拼接代理 URL
const proxyUrl = proxyAuth
?`socks5://${proxyAuth}@${proxyDomain}`
:null
await cafesdk.log.info(`代理地址: ${proxyUrl}`)
// 4. 创建 HTTP Client
let axiosConfig = {
timeout:30000,
headers: {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}
}
// 5. 如果存在代理,配置 Agent
if (proxyUrl) {
const agent =newSocksProxyAgent(proxyUrl)
axiosConfig.httpAgent = agent
axiosConfig.httpsAgent = agent
axiosConfig.proxy =false// 必须关闭 axios 默认代理
await cafesdk.log.info('已配置 SOCKS5 代理')
}
// 6. 示例业务请求
try {
const targetUrl ='https://ipinfo.io/ip'
await cafesdk.log.info(`开始请求: ${targetUrl}`)
const response =await axios.get(targetUrl, axiosConfig)
await cafesdk.log.info(`响应状态码: ${response.status}`)
await cafesdk.log.info(`当前出口 IP: ${response.data.trim()}`)
}catch (err) {
await cafesdk.log.error(`请求失败: ${err.message}`)
}
⚠️ 注意事项
- ❗ 不要硬编码代理账号或密码
- ❗ **始终优先使用平台注入的 **
PROXY_AUTH - ❗ Node.js 中必须设置
proxy = false,否则 SOCKS 代理不会生效