人生苦短,我用Python:利用腾讯云函数 SCF + API 网关搭建一个网址代理,并拥有海量IP代理池

2023年 8月 28日 44.5k 0

本文介绍如何利用腾讯云的云函数SCF和API网关实现简单的网址代理,解决网络不可用及1020等问题,提供了一个 Python 代码示例演示。

适用场景:网站代理,接口代理,WebShell防溯源连接。

相关服务介绍:

云函数(Serverless Cloud
Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。 API
网关(API Gateway)是 API 托管服务,提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。

简单步骤:

创建云函数 SCF,输入代码。
创建 API 网关。
云函数SCF应用绑定API网关。

第一步:创建SCF应用

模板:从头开始

函数类型 :事件函数
地域:新加坡 (根据需要)
运行环境:Python3.6

创建scf应用

填写代码:
代码示例

import time
import random
import requests
import ssl
from urllib.parse import unquote

#忽略证书校验
requests.packages.urllib3.disable_warnings()
try:
    _create_unverified_https_context =ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context =_create_unverified_https_context

user_agent = [ 
            'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/57.0.2987.133 Safari/537.36', 
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML,like Gecko) Chrome/23.0.1271.64 Safari/537.11",
            "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10)Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
            ]

def requests_headers():
    UA = random.choice(user_agent)
    headers = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'User-Agent': UA,
        'X-Forwarded-For': '10.10.{}.{}'.format(str(random.randint(0, 255)), str(random.randint(0, 255))),
        }
    return headers

def main_handler(event, context):
    #url = unquote(event['queryString']['url'])
    url = event['queryString']['url']
    agrs = event['queryString']
    for key in agrs.keys():
        if key != "url":
            url += "&" +  key + "=" + agrs[key]
    method = event['httpMethod']
    headers = requests_headers()
    #headers = event['headers']
    timeout = 60
    try:
        data = event['body']
    except:
        data = None
    if method == "POST":
        html = requests.post(url=url, headers=headers, timeout=timeout, verify=False, data=data)
    elif method == "GET":
        html = requests.get(url=url, headers=headers, timeout=timeout, verify=False, data=data)
    print(len(html.text))
    return {
        "isBase64Encoded": False,
        "statusCode": html.status_code,
        "headers": {'Content-Type': 'text/html; '},
        "body": html.text
    }

高级配置:

执行超时时间:60
运行角色:SCF_QcsRole(选择具有权限的角色)
不需要固定公网出口IP
不需要用日志

高级配置

触发器配置

选择API网关触发
请求方法:any

触发器配置
到这里SCF云函数创建配置完成。

点击应用下面的触发管理:如何没有绑定就绑定一下。
在这里插入图片描述

效果演示:
访问网站:你的触发器下的访问路径+?url=你的代理的网址
在这里插入图片描述

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论