从入门到入土:python爬虫|SCU每日打卡自动填写|测试训练|

此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
本人博客所有文章纯属学习之用,不涉及商业利益。不合适引用,自当删除!
若被用于非法行为,与我本人无关

SCU每日打卡自动填写

手动挡

  • 手动将cookie复制进去就好了
import requests
import  re

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

def get_post():
    url = 'https://wfw.scu.edu.cn/ncov/wap/default/index'
    rs = requests.session()
    r = rs.get(url, headers=headers)
    try:
        info = re.findall(r'.*?oldInfo: (.*),.*?', r.text)
    except:
        print("[ERROR]:Cookie已过期,请手动更新")
        return 0
    data = eval(info[0])
    try:
        Return =requests.post('https://wfw.scu.edu.cn/ncov/wap/default/save', headers=headers, data=data)
        Return=Return.json()
        print("[INFO]:今日填报结果:"+Return['m'])
    except:
        print("[ERROR]:填写内容已改动,本次请手动填报")

if __name__ == "__main__":
    print("="*500)
    print("[INFO]:欢迎使用一体化自动填报程序\n[INFO]:请载手动添加cookie后再次载入本程序\n[INFO]:如以添加请忽视")
    get_post()
    print("=" * 500)

运行效果

在这里插入图片描述

自动挡

  • 在项目文件下建好info.txt
  • 然后依次输入账号密码
  • 然后运行就好了
import requests
import re
import csv

# username = ''
# password = ''

def get_post(username,password):
    info = {
        'username': username,
        'password': password
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
        }
    print('[INFO]:正在进行Cookie获取')
    rs = requests.session()
    url_cookie='https://wfw.scu.edu.cn/a_scu/api/sso/check'
    r = rs.post(url_cookie, data=info, headers=headers, timeout=3).json()
    if(r['m']=='操作成功'):
        print('[INFO]:Cookie获取成功')
    else:
        print('[ERROR]:Cookie获取失败,请检查密码账号是否正确以及网络情况')
        return 0

    url_put= 'https://wfw.scu.edu.cn/ncov/wap/default/index'
    r1 = rs.get(url_put, headers=headers)
    info = re.findall(r'.*?oldInfo: (.*),.*?', r1.text)
    data = eval(info[0])
    #print(data)
    try:
        print('[INFO]:正在进行填报')
        url_post='https://wfw.scu.edu.cn/ncov/wap/default/save'
        Return = rs.post(url=url_post, headers=headers, data=data)
        Return = Return.json()
        print("[INFO]:今日填报结果:" + Return['m'])

    except:
        print("[ERROR]:填写失败或填写内容已改动,本次请手动填报")


def info():
    try:
        print('[INFO]:正在进行信息读取')
        with open("info.txt", "r", encoding="utf-8", newline="") as csvfile:
            reader = csv.reader(csvfile)
            info = []
            for Row in reader:
                info.append(Row)
    except:
        print('[ERROR]:读取信息失败')
        return 0
    if(info==None):
        print('[ERROR]:信息未成功写入,请重新写入')
        return 0
    print('[INFO]:信息读取成功')
    return info


if __name__ == "__main__":
    print("=" * 500)
    print("[INFO]:欢迎使用zack一体化自动填报程序")
    info=info()
    get_post(info[0],info[1])
    print("=" * 500)

运行效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值