首页 > 其他分享 >盘点一个ddddocr实现登录的实战案例

盘点一个ddddocr实现登录的实战案例

时间:2023-04-20 16:08:31浏览次数:39  
标签:实战 session captcha url res ddddocr headers 盘点 text

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【空翼】问了一个Pyhton网络爬虫的问题,这里拿出来给大家分享下。

盘点一个ddddocr实现登录的实战案例_Python编码

二、实现过程

一开始看上去并不能登录,找不到原因在哪,后来【甯同学】帮忙搞定了,代码如下:

# -*- coding: utf-8 -*-
# @Author  : KongYi
# @Time    : 2022/12/3 13:49
import hashlib
import re
import requests
import ddddocr

baseurl = 'http://zhjw.scu.edu.cn/login'
session = requests.Session()
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
}
res = session.get(url=baseurl, headers=headers)

token = re.findall('<input type="hidden" id="tokenValue" name="tokenValue" value="(.*?)">', res.text)[0]

print(token)

res = session.get('http://zhjw.scu.edu.cn/img/captcha.jpg')
with open('captcha.jpg', 'wb') as f:
    f.write(res.content)
    f.close()

ocr = ddddocr.DdddOcr()
with open('captcha.jpg', 'rb') as f:
    img_bytes = f.read()
captcha_text = ocr.classification(img_bytes)

print(captcha_text)

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}

m = hashlib.md5()
m.update('Chenxiao12345!'.encode())
ctx = m.hexdigest()
print(ctx)

login_url = 'http://zhjw.scu.edu.cn/j_spring_security_check'
data = {
    'tokenValue': token,
    'j_username': '2020141410129',
    'j_password': ctx,
    'j_captcha': captcha_text
}

res = session.post(url=login_url, data=data, headers=headers)

jsonurl = 'http://zhjw.scu.edu.cn/'
res = session.post(url=jsonurl, headers=headers)
print(res.text)

代码运行之后,顺利地实现了网页登录。

盘点一个ddddocr实现登录的实战案例_Python爬虫_02

顺利地解决了问题。

盘点一个ddddocr实现登录的实战案例_Python编码_03

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pyhton网络爬虫的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【空翼】提问,感谢【甯同学】给出的思路和代码解析,感谢【Python狗】等人参与学习交流。



标签:实战,session,captcha,url,res,ddddocr,headers,盘点,text
From: https://blog.51cto.com/u_13389043/6209746

相关文章

  • 八、实战案例之基于ELK实现容器日志收集与展示
    kubernetes实战案例之基于ELK实现容器日志收集与展示实现pod中日志收集之至ELK,自定义字段数据格式转换、排序、基于日志实现pod自愈、自动扩容等收集日志的方法:1、通过DaemonSet在宿主机启动日志收集客户端Fluentd、logstash、filebeat-v选项把宿主机的日志挂......
  • vue3微信公众号商城项目实战系列(12)项目发布到服务器上
    本篇介绍如何将vue3项目打包发布到服务器上,然后在微信公众号上打开。vue3发布之前需要对项目进行编译,编译时会在项目根目录下创建dist文件夹,编译后的文件会存放在这里。 在编译之前,我们在public目录下建一个config.js的文件,里面放如下的代码:constconfig={baseUr......
  • 盘点五款轻松提升团队目标感的管理工具
    在现代工作中,有许多目标需要实现,无论是团队还是个人目标。为了更好地管理这些目标,许多公司和组织都选择使用目标管理软件,以实现更加高效和协同的工作流程。今天推荐5款个人和团队都适用的目标管理软件,帮助大家更好达成目标。1、飞项:飞项是一款提供团队、个人和项目目标管理功能......
  • #yyds干货盘点# LeetCode面试题:搜索旋转排序数组 II
    1.简述:已知存在一个按非降序排列的整数数组nums,数组中的值不必互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],...,nums[n-1],nums[0],nums[1],...,nums[k-1]](下标从0开始计数)。例如,[0,1,2......
  • 盘点一个Excel多条件求和的问题
    大家好,我是皮皮。一、前言前几天在Python最强白银交流群【维哥】问了一个Excel处理的问题,这里拿出来给大家分享下。下图是他的数据:二、实现过程这个问题确看上去是Excel的问题,但是怎么开展合并计算,确实头大。虽然用一些文本截取的确可行,但是肯定会增加列。粉丝的需求是一步到位的那......
  • #yyds干货盘点#详解Django基础
    一:创建项目使用django-admin命令构建项目django-adminstartprojectHelloWorld如上使用django构建了一个HelloWorld项目二:项目结构我们可以看到HelloWorld项目结构如下|--HelloWorld||--__init__.py||--settings.py||--urls.py|`--wsgi.py`--manage.p......
  • #yyds干货盘点# LeetCode程序员面试金典:串联所有单词的子串
    题目:给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串长度相同。 s 中的串联子串是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。例如,如果 words=["ab","cd","ef"],那么 "abcdef", "abefcd","cdabef", "cdefab","efabcd",......
  • PyTorch项目实战02——Tensor张量的创建
    1Tensor介绍Tensor是tensorflow的一个基础概念——张量。 是具有统一类型(称为 dtype)的多维数组。Tensorflow里的数据用到的都是tensor,所以谷歌起名为tensorflow。就像Python数值和字符串一样,所有张量都是不可变的:永远无法更新张量的内容,只能创建新的张量。Tensor的数组里......
  • pathon爬虫实战——爬取某网站的多页番剧内容
    (本博客只为技术分学习,无其他用途) 1.准备涉及的第三方库如下: 2.网页分析2.1检验网页1.运行浏览器,打开网页,按快捷键F12打开开发者工具,F5刷新页面2.在右侧点击Network,打开browser?sort=rank&page=1文件,可以看到各种信息,查看表头 3.获取Cooki和User-Agnet,准备伪......
  • JavaSE库存管理系统项目实战
    需求分析企业库房用于存放成品、半成品、原材料、工具等物资,一般情况下,这些物资统称为物料。库存管理常见业务包括物资的入库、出库、盘点、退货、报废以及财务核算等,业务逻辑比较复杂,库房信息系统项目开发周期一般要1~3个月。本实践项目基于企业实际库存业务进行简化,实现一个简单......