Python使用腾讯防水墙
-
去腾讯云创建一个验证
-
前端
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://ssl.captcha.qq.com/TCaptcha.js"></script> <!-- 引用 --> <title>Document</title> </head> <body> <button onclick="btn()">按钮</button> <script> function btn() { var captcha = new TencentCaptcha("防水墙ID", (res) => { if (res.ret == 0) { // 防水墙前端验证成功,向后端发送数据,将res.ticket和res.randstr也发过去进行后端验证 } }); captcha.show(); // 显示防水墙 } </script> </body> </html>
-
-
后端
-
import json from urllib.parse import urlencode from urllib.request import urlopen def check_captcha(ticket, randstr, user_ip): """ 验证腾讯防水墙 :param ticket: 前端验证成功发送过来的 :param randstr: 前端验证成功发送过来的 :param user_ip: 客户端IP :return: True/False """ if len(ticket) < 1 or len(randstr) < 1: """参数有问题""" return False params = { "aid": "app的ID", "AppSecretKey": "app的SecretKey", "Ticket": ticket, # 前端发过来的 "Randstr": randstr, # 前端发过来的 "UserIP": user_ip # 一般是request中获取 } params = urlencode(params).encode(encoding='utf-8') content = urlopen("https://ssl.captcha.qq.com/ticket/verify", params).read() res = json.loads(content) if res['response'] != "1": return False return True if __name__ == '__main__': result = check_captcha("aaa", "bbb", "127.0.0.1")
-