python爬虫,验证码识别,携带cookies请求

古诗词网案例!!!

识别验证码类型:

python 复制代码
# 此处用到的图片验证码识别网址为:http://ttshitu.com/ 图鉴
import base64
import json
import requests
# 一、图片文字类型(默认 3 数英混合):
# 1 : 纯数字
# 1001:纯数字2
# 2 : 纯英文
# 1002:纯英文2
# 3 : 数英混合
# 1003:数英混合2
#  4 : 闪动GIF
# 7 : 无感学习(独家)
# 11 : 计算题
# 1005:  快速计算题
# 16 : 汉字
# 32 : 通用文字识别(证件、单据)
# 66:  问答题
# 49 :recaptcha图片识别
# 二、图片旋转角度类型:
# 29 :  旋转类型
#
# 三、图片坐标点选类型:
# 19 :  1个坐标
# 20 :  3个坐标
# 21 :  3 ~ 5个坐标
# 22 :  5 ~ 8个坐标
# 27 :  1 ~ 4个坐标
# 48 : 轨迹类型
#
# 四、缺口识别
# 18 : 缺口识别(需要2张图 一张目标图一张缺口图)
# 33 : 单缺口识别(返回X轴坐标 只需要1张图)
# 五、拼图识别
# 53:拼图识别
def base64_api(uname, pwd, img, typeid):
    with open(img, 'rb') as f:
        base64_data = base64.b64encode(f.read())
        b64 = base64_data.decode()
    data = {"username": uname, "password": pwd, "typeid": typeid, "image": b64}
    result = json.loads(requests.post("http://api.ttshitu.com/predict", json=data).text)
    if result['success']:
        return result["data"]["result"]
    else:
        return result["message"]
    return ""


if __name__ == "__main__":
    # 获取验证码图片
    code_url = 'https://so.gushiwen.cn/RandCode.ashx'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    }
    sess = requests.Session()  # 携带cookies
    res = sess.get(code_url, headers=headers)
    # 保存验证码图片到当前路径
    with open('yzm.jpg', 'wb') as f:
        f.write(res.content)
    img_path = "./yzm.jpg"
    result = base64_api(uname='图鉴网账号', pwd='图鉴网密码', img=img_path, typeid=3)
    print(result)
    # 这里的result为识别后的验证码数字
    # 上半部分是咱们刚才的代码
    # 需要爬取网站的登录页面
    url = 'https://so.gushiwen.cn/user/login.aspx?from=http%3a%2f%2fso.gushiwen.cn%2fuser%2fcollect.aspx'

    data = {
        '__VIEWSTATE': 'gRid5bo91a/3jGuyGRrb5K/ONANSyHJgAOW160cLBWy/6dnfzslD1VMDZFCAwg6zRoZwi9lGa/pn1woHDhFvBctNo/ugDw7KM39GNrvmebKfE2cyB2BMd7e98B4=',
        '__VIEWSTATEGENERATOR': 'C93BE1AE',
        'from': 'http://so.gushiwen.cn/user/collect.aspx',
        'email': '古诗词账号',
        'pwd': '古诗词密码',
        'code': result,
        'denglu': '登录',
    }
    res = sess.post(url, data=data, headers=headers)
    with open('gsw.html', 'wb') as f:
        f.write(res.content)
相关推荐
敲代码不忘补水4 分钟前
生成式GPT商品推荐:精准满足用户需求
开发语言·python·gpt·产品运营·产品经理
孤客网络科技工作室9 分钟前
Python Plotly 库使用教程
python·信息可视化·plotly
悟解了9 分钟前
《数据可视化技术》上机报告
python·信息可视化·数据分析
机器学习之心13 分钟前
时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
人工智能·pytorch·python·时间序列预测·informer·改进图卷积
清风fu杨柳30 分钟前
centos7 arm版本编译qt5.6.3详细说明
开发语言·arm开发·qt
醉颜凉32 分钟前
【NOIP提高组】潜伏者
java·c语言·开发语言·c++·算法
糊涂君-Q34 分钟前
Python小白学习教程从入门到入坑------第三十一课 迭代器(语法进阶)
python·学习·程序人生·考研·职场和发展·学习方法·改行学it
_小柏_35 分钟前
C/C++基础知识复习(20)
开发语言
天飓40 分钟前
基于OpenCV的自制Python访客识别程序
人工智能·python·opencv
程序员小明z44 分钟前
基于Java的药店管理系统
java·开发语言·spring boot·毕业设计·毕设