跳转到主要内容

🌐 代理环境说明

为确保脚本在全球范围内稳定访问目标网站,平台会在运行时提供一条加密通道(代理服务器)。
脚本无需自行购买或维护代理,只需 读取平台注入的代理认证信息,并在 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复制代码
npm install axios socks-proxy-agent
js复制代码
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 代理不会生效