人生苦短,我用Python:利用腾讯云函数 SCF + API 网关搭建一个网址代理,并拥有海量IP代理池
本文介绍如何利用腾讯云的云函数SCF和API网关实现简单的网址代理,解决网络不可用及1020等问题,提供了一个 Python 代码示例演示。
适用场景:网站代理,接口代理,WebShell防溯源连接。
相关服务介绍:
云函数(Serverless Cloud
Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。 API
网关(API Gateway)是 API 托管服务,提供 API 的完整生命周期管理,包括创建、维护、发布、运行、下线等。
简单步骤:
创建云函数 SCF,输入代码。
创建 API 网关。
云函数SCF应用绑定API网关。
第一步:创建SCF应用
模板:从头开始
函数类型 :事件函数
地域:新加坡 (根据需要)
运行环境:Python3.6
填写代码:
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=你的代理的网址