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

大家好,我是皮皮。

一、前言

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

图片

二、实现过程

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

# -*- 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)

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

图片

顺利地解决了问题。

图片

三、总结

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

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

posted @ 2023-02-15 21:38  dcpeng  阅读(96)  评论(0编辑  收藏  举报