利用云函数 SCF + API 网关搭建一个网址代理,并拥有海量IP代理池

在互联网上IP是每个人都有的“网络身份证”,是互联网上一个连接者的唯一标识符,它包含你的地理位置运营商网络活动痕迹等信息,而这些信息能够被网络服务商轻松的看到。

本文演示基于腾讯云函数和API网关的应用,介绍如何利用腾讯云的云函数SCF和API网关实现简单的网络代理,每次访问都会给你一个全新的IP,利用这个特性隐匿行踪,实现网络身份,地理位置的变更。由于网络地理位置变更,访问ip周围的网络服务也就更快了,由此又提供网络加速的功能。

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

相关服务介绍
云函数是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。总结一句话就是:稳定可靠,高效开发,简化运维,节省成本,不需为空闲资源付费。

简单的4个步骤:

1.创建云函数 SCF,输入代码。

2.创建 API 网关。

3.云函数SCF应用绑定API网关。

4.访问网页

第一步:创建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; charset=utf-8'},
        "body": html.text
    }

高级配置

内存:64MB(越小越便宜)

执行超时时间:60s
运行角色:SCF_QcsRole(选择具有权限的角色)

不选择日志(看需求,一般不选择)

核心特性

不要选择固定公网出口IP

参考如图

高级配置

触发器配置:它设置你使用什么方式访问,使用什么方式回复你的网络请求。

选择API网关触发

请求方法 :any (如果设置不对将无法访问,具体知识可以查看《HTTP协议》)

参考如下

触发器配置

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

点击右侧的触发管理就有你的访问链接:如何没有链接,就重新设置触发器或者绑定触发器一下。

在这里插入图片描述

效果演示:
访问网站,你的触发器下的访问路径+?url=你的代理的网址,每次访问都会更新ip

访问

活动推荐:

腾讯云100GBCDN流量0元试用:https://curl.qcloud.com/3Zx7vWEM

老用户0元 每月10GBCDN流量:https://curl.qcloud.com/ObGTRB1j

服务器等其他免费试用:https://curl.qcloud.com/V18Dwzvy

(提示:0元订单不占用新人优惠)

温馨提示:目前云函数每月有免费100万次调用额度哦

免费云函数额度

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,base64转图片和图片转文字是两个不同的功能,我需要确认您需要哪个功能的代码。 如果您需要实现base64转图片,可以参考以下腾讯云函数API网关的示例代码: ```python import base64 import os def main_handler(event, context): # 获取base64编码的图片数据 base64_data = event['body'] # 解码base64数据并保存为图片 img_data = base64.b64decode(base64_data) img_path = '/tmp/img.jpg' with open(img_path, 'wb') as f: f.write(img_data) # 将图片上传到腾讯云对象存储(示例代码) from qcloud_cos import CosConfig from qcloud_cos import CosS3Client secret_id = os.environ['SECRET_ID'] secret_key = os.environ['SECRET_KEY'] region = os.environ['REGION'] token = None config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) client = CosS3Client(config) client.upload_file(Bucket='mybucket', LocalFilePath=img_path, Key='img.jpg') return {"statusCode": 200, "body": "success"} ``` API网关配置示例: - 请求协议:HTTP - 请求方法:POST - 集成类型:SCF腾讯云函数) - 腾讯云函数名称:base64_to_image(示例代码中的函数名) - 请求参数传递方式:字符串 如果您需要实现图片转文字,可以使用OCR技术进行识别。以下是腾讯云OCR的示例代码: ```python import base64 import os from TencentCloudOCR import TencentCloudOCR def main_handler(event, context): # 获取图片URL img_url = event['body'] # 下载图片 import requests img_data = requests.get(img_url).content img_path = '/tmp/img.jpg' with open(img_path, 'wb') as f: f.write(img_data) # 调用腾讯云OCR接口 secret_id = os.environ['SECRET_ID'] secret_key = os.environ['SECRET_KEY'] region = os.environ['REGION'] ocr = TencentCloudOCR(secret_id, secret_key, region) result = ocr.general_ocr(img_path) return {"statusCode": 200, "body": result} ``` API网关配置示例: - 请求协议:HTTP - 请求方法:POST - 集成类型:SCF腾讯云函数) - 腾讯云函数名称:image_to_text(示例代码中的函数名) - 请求参数传递方式:字符串

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值