学习强国 自动化 百分百正确、瞬间答题,分值45分

Overview

项目简介

学习强国自动化脚本,解放你的时间!

使用Selenium、requests、mitmpoxy、百度智能云文字识别开发而成

使用说明

:Chrome版本

image-20201207091125954

驱动会自动下载

首次使用会生成数据库文件db.db,用于提高文章、视频任务效率。

依赖安装

pip install -r requirements.txt

没有梯子的同学可使用国内阿里源:

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

使用方法

一定要找个网络好的地方,不然可能会出现错误

1、控制台运行:python main.py

2、选择选项(如非必要,尽量选择不显示自动化过程,以免误操)

等待片刻,连接学习强国服务器需要时间,等待时间与网速关系很大。

3、扫描二维码登录

4、选择任务(暂时只支持文章、视频、每日答题、每周答题、专项答题,后续功能正在开发,不过暂时也差不多够用了,45分呢),可多选,不过每个选项要用空格隔开,选择文章或视频时,等待时间稍久一点。

5、任务完成后需手动结束程序

使用示例

image-20210127134017543

image-20210207000645085

image-20210207000823436

image-20210207001005808

image-20210207001047255

image-20210207001122282

image-20210207001149837

image-20210207001303406

image-20210207001404717

百度智能云操作流程

1、登录控制台

点击→百度智能云

image-20210206231654368

2、创建应用

image-20210206235118045

3、选择选项

image-20210206235421370

image-20210206235616741

4、获取API Key、Secret Key

image-20210207000519698

版本说明

  • v0.1:文章、视频,分数:25
  • v0.2:优化文章、优化视频、每日答题(百分百正确),分数30
  • v0.3:新增每周答题、专项答题(也是百分百正确),分数45
  • v0.31:优化记录存储、优化目录结构、优化配置文件结构,增加进度条、增加自动下载驱动、增加系统兼容(Linux、Windows、MacOS)
  • v1.0: 重构整个项目,增加持久化、驱动自动检测与谷歌浏览器匹配、驱动自主下载、更快的登录、文章和视频自适应、更快更精准的答题、加强的防检测、每个文件都有说明注释(便于各位大佬修改)
  • v1.1: 由于专项答题视频答案匹配问题,现加入百度智能云的文字识别功能,可将视频中的答案提取出来,不过答案还需手动填写,因为提取的答案暂时没有好的办法过滤。至少不用看视频了是不2333.

附语

在持久化登录方面思考了很久,要不要做批量持久化?,后来想了想,本项目的目的是为了帮助没有时间做学习强国任务的个人节省时间,如果做了批量的话,恐怕会沦为某些人的牟利工具。所以最后决定只做单用户持久模式,如果有想做批量的话,建议细读学习强国App积分页的提醒警示。

希望大佬点点start,给点动力,希望能给大家带来更多的功能!

Comments
  • 软件未安装问题

    软件未安装问题

    PS D:\软件安装包\learning-power-master\learning-power-master> python main.py 检测到谷歌浏览器未安装,无法进行本程序

    都安装完了,还是提示这个,谷歌浏览器是必须卸载再重新安一边你的那个同版本吗,db.db这个文件夹也没生成

    Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-refs/branch-heads/4324@{#1784}) on port 9515 Only local connections are allowed. Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe. ChromeDriver was started successfully.

    安装的那个谷歌浏览器exe文件打开就是这样的提示,也是正常安装了啊 很懵,求大佬解答,看一下您的 邮箱呗

    opened by xingkongwl 23
  • 学习期间,发现问题并进行了一些改进(专项答题bug)

    学习期间,发现问题并进行了一些改进(专项答题bug)

    1. mac系统在自动安装chromedriver后,可能会遇到权限不足情况

    [init_driver.py]

    添加权限操作(只添加这一句)

    os.chmod(DRIVER_FILE, 755)

    driver = webdriver.Chrome( desired_capabilities=caps, executable_path=DRIVER_FILE, )

    1. 专项答题匹配不上,没法进行选项选择和下一题

    [answer.py]

    做如下修改(文本不匹配,进行修改匹配):将 (1) 修改成 (2)

    (1) if self.__answer_topic_desc in answer['body'].replace('()', ''):

    (2) if self.__answer_topic_desc.replace('\n', '') in answer['body'].replace('()', '').replace('--|--', '来源:'):

    1. 专项答题由于一些标点符号问题,选项不全。

    [answer.py]

    做如下修改(对标点符号进行替换):将 (1) 修改成 (2)

    (1) if correct['content'] == desc:

    (2) if correct['content'].replace("“", "").replace("”", "") == desc:

    以上修改在mac系统都是可行的,其他不敢保证。大佬有需要我可以直接提PR

    opened by Swenchao 17
  • FileNotFoundError: [WinError 2] 系统找不到指定的文件。

    FileNotFoundError: [WinError 2] 系统找不到指定的文件。

    image

    是否静音(Y/n):y
    是否显示自动化过程(y/N):y
    是否持久化登录(Y/n):b
    是否使用百度AI(y/N):y
    Traceback (most recent call last):
      File "main.py", line 24, in <module>
        MITMDUMP().Open()
      File "F:\下载\learning-power-1.1\inside\Task\Mitmdump\Mitmdump.py", line 37, in Open
        ['mitmdump', '-q', '-p', '8080', '-s', PATH().Script]
      File "C:\Python37\lib\subprocess.py", line 769, in __init__
        restore_signals, start_new_session)
      File "C:\Python37\lib\subprocess.py", line 1172, in _execute_child
        startupinfo)
    FileNotFoundError: [WinError 2] 系统找不到指定的文件。
    

    请问下,这个问题是怎么回事?我用的是win10的,python3.7

    opened by legolas-zeng 9
  • 大佬这是什么毛病啊

    大佬这是什么毛病啊

    请选择任务: 1、文章 2、视频 3、每日答题 4、每周答题 5、专项答题(此项有点BUG) 选择(选项请使用空格隔开,退出输入0):4 Traceback (most recent call last): File "main.py", line 23, in task_manage.start() File "C:\Users\54075\Desktop\learning-power-master\task\task_manage.py", line 314, in start self.__accomplish_weekly_answer() File "C:\Users\54075\Desktop\learning-power-master\task\task_manage.py", line 294, in __accomplish_weekly_answer self.__do_weekly_answer_task() File "C:\Users\54075\Desktop\learning-power-master\task\task_manage.py", line 242, in __do_weekly_answer_task num = self.__weekly_task.get_topic() File "C:\Users\54075\Desktop\learning-power-master\tools\analysis.py", line 287, in get_topic index: int = get_random.get_random_int(0, topic_num - 1) File "C:\Users\54075\Desktop\learning-power-master\tools\get_random.py", line 15, in get_random_int return random.randint(a=a, b=b) File "C:\Users\54075\AppData\Local\Programs\Python\Python38-32\lib\random.py", line 248, in randint return self.randrange(a, b+1) File "C:\Users\54075\AppData\Local\Programs\Python\Python38-32\lib\random.py", line 226, in randrange raise ValueError("empty range for randrange() (%d, %d, %d)" % (istart, istop, width)) ValueError: empty range for randrange() (0, 0, 0)

    opened by ChilliShark 9
  • 大佬请问这个错误是什么原因呀

    大佬请问这个错误是什么原因呀

    D:\learning-power-master>python main.py Traceback (most recent call last): File "main.py", line 12, in from inside.Driver.Driver_Manage import DRIVER_MANAGE File "D:\learning-power-master\inside\Driver\Driver_Manage.py", line 11, in from selenium.webdriver.chrome.webdriver import WebDriver ModuleNotFoundError: No module named 'selenium'

    opened by Dairce 6
  • 系统找不到指定的文件

    系统找不到指定的文件

    Traceback (most recent call last): File "main.py", line 24, in MITMDUMP().Open() File "D:\github_project\learning-power-1.1\inside\Task\Mitmdump\Mitmdump.py", line 36, in Open self.__mitmdump = subprocess.Popen( File "C:\Program Files\Python38\lib\subprocess.py", line 858, in init self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Program Files\Python38\lib\subprocess.py", line 1311, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] 系统找不到指定的文件。

    这个缺啥?

    opened by sparklerl 4
  • 输入完百度api就无法运行了

    输入完百度api就无法运行了

    是否静音(Y/n):y 是否显示自动化过程(y/N):y 是否持久化登录(Y/n):y 是否使用百度AI(y/N):y Traceback (most recent call last): File "D:\xuexi\learning-power-1.1\main.py", line 24, in MITMDUMP().Open() File "D:\xuexi\learning-power-1.1\inside\Task\Mitmdump\Mitmdump.py", line 36, in Open self.__mitmdump = subprocess.Popen( File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 947, in init self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1416, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] 系统找不到指定的文件。

    我是从win商店安装Python

    opened by donqee 3
  • 正常运行到一半报错

    正常运行到一半报错

    选择的是全部都做1 2 3 4 5,大概做到30分的时候,提示 要选读文章:6.0分 视听学习:6.0分 专项答题:0分 每周答题:0分 每日答题:5.0分 分享:0分 收藏:0分 登录:1.0分 我要选读文章-时长:6.0分 订阅:0分 视听学习时长:6.0分 发表观点:0分 连续学习达标:0分 挑战答题:0分 参加调查问卷活动:0分 本地频道:0分 强国运动:0分 积分补发:0分 争上游答题:0分 【积分优化】一次性调整:0分 违规扣减:0分 双人对战:0分 问卷调查活动:0分 Traceback (most recent call last): File "C:\Users\hellsion\Desktop\learning-power-master\main.py", line 33, in task.Task() File "C:\Users\hellsion\Desktop\learning-power-master\inside\Task\Task_Manage.py", line 206, in Task self.__Check_Weekly_Answer() File "C:\Users\hellsion\Desktop\learning-power-master\inside\Task\Task_Manage.py", line 164, in __Check_Weekly_Answer temp.Do(link=API().Weekly_Answer_Topic.geturl().format(num=iid)) File "C:\Users\hellsion\Desktop\learning-power-master\inside\Task\Task_Answer.py", line 168, in Do seq = int(self.Topic_Seq().split('/')[-1]) ValueError: invalid literal for int() with base 10: ''

    不知道是什么问题。是不是因为每周答题或者专项答题没有了?哎。在吐槽一下,以前留的每周答题,还有专项答题全部过期了。这个改版真的是醉了。

    opened by nqianaaron 3
  • 扫码后提示KeyError: 21错误

    扫码后提示KeyError: 21错误

    File "C:\Users\hellsion\Desktop\learning-power-master\learning-power-master\main.py", line 19, in task_manage = Task_Manage(driver=driver) File "C:\Users\hellsion\Desktop\learning-power-master\learning-power-master\task\task_manage.py", line 48, in init self.__refresh_user_msg() File "C:\Users\hellsion\Desktop\learning-power-master\learning-power-master\task\task_manage.py", line 59, in __refresh_user_msg self.__user_msg[USER_KEYS[4]] = analysis_msg.task_bar File "C:\Users\hellsion\Desktop\learning-power-master\learning-power-master\tools\analysis.py", line 115, in task_bar task_bar[TASK_ID[task['ruleId']]] = task KeyError: 21

    opened by nqianaaron 3
  • pip 出错 No matching distribution found for mitmproxy~=6.0.2

    pip 出错 No matching distribution found for mitmproxy~=6.0.2

    按照 README 说明,无论是用 pip 默认源还是用阿里源,都会提示找不到 mitmproxy:

    
    ERROR: Could not find a version that satisfies the requirement mitmproxy~=6.0.2
    ERROR: No matching distribution found for mitmproxy~=6.0.2
    

    但是实际上 mitmproxy 是有这个版本的 。于是先尝试使用 pip install mitmproxy 安装,结果安装的是 /usr/local/lib/python3.7/dist-packages (5.3.0)

    我检查了自己的 pip 版本, pip --version ,得到的结果是 pip 21.0.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

    看起来好像也没什么问题。。。。所以是哪里出错了。

    python3 -m pip install -r requirements.txt 结果也是一样的。

    opened by bao3 2
  • 最新版不知道什么原因出错.

    最新版不知道什么原因出错.

    目前的是正式版谷歌浏览器.但是版本号不是94.是Google Chrome 已是最新版本 版本 88.0.4324.104(正式版本) (64 位) 但是这个driver自动更新的.应该也不至于啊? 出错详情如下: 是否静音(Y/n):y 是否显示自动化过程(y/N):n 是否持久化登录(Y/n):y 检测到驱动未下载 驱动自动下载中 chromedriver_win32.zip: 100%|████| 4.59M/4.59M [00:00<00:00, 5.55MB/s] 驱动自动下载完毕 文件大小为4.378110885620117MB Traceback (most recent call last): File "C:\Users\hellsion\Desktop\learning-power-master\main.py", line 27, in network.Init(driver=driver.Task) File "C:\Users\hellsion\Desktop\learning-power-master\inside\Driver\Driver_Manage.py", line 86, in Task return DRIVER_INIT().Task_Driver File "C:\Users\hellsion\Desktop\learning-power-master\inside\Driver\Driver_Init.py", line 93, in Task_Driver self.__instances['Task'] = Chrome( File "C:\Users\hellsion\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 76, in init RemoteWebDriver.init( File "C:\Users\hellsion\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in init self.start_session(capabilities, browser_profile) File "C:\Users\hellsion\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "C:\Users\hellsion\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\hellsion\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 70 and 73 (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.17763 x86_64)

    opened by nqianaaron 2
  • mac 刚运行卡在这里

    mac 刚运行卡在这里

    Traceback (most recent call last): File "/Users/panyinglin/Downloads/learning-power-master/main.py", line 22, in os.system(command=SYSTEM().Clear) TypeError: system() got an unexpected keyword argument 'command' 大佬帮看看是啥原因

    opened by irenefv 0
  • 从2021年10月20日开始好像是不是网站有更新,目前进不去了

    从2021年10月20日开始好像是不是网站有更新,目前进不去了

    是否静音(Y/n): 是否显示自动化过程(y/N): 是否持久化登录(Y/n): 是否使用百度AI(y/N): 项目地址:https://github.com/lisztomania-Zero/learning-power 用户ID:594721529 等级:9 段位:九天揽月 全国排名:17224999 总积分:25132.0 今日积分:1.0 每日积分细则:

    卡在这里了

    opened by jd04063221 3
  • 谷歌浏览器93版本,登录无法使用,失效了吗?

    谷歌浏览器93版本,登录无法使用,失效了吗?

    解析任务集中 任务URL: https://www.xuexi.cn/lgdata/1ncfare2pnn.json?_st=26777175 ====> <Response [200]>

    系统维护中
    系统正在维护中...
    请稍后再试

    Traceback (most recent call last): File "C:\Users\Administrator\Downloads\learning-power3-master\main.py", line 33, in task.Task() File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Manage.py", line 211, in Task self.__Check_Article() File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Manage.py", line 104, in __Check_Article self.__Article(num=p, tq=(c*4)//p) File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Manage.py", line 51, in _Article tasks = TASK_INIT().Assigning_Article(num=num) File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Init.py", line 105, in Assigning_Article return self.Assigning_Article(num=num) File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Init.py", line 104, in Assigning_Article self.Init_Article_Video() File "C:\Users\Administrator\Downloads\learning-power3-master\inside\Task\Task_Init.py", line 68, in Init_Article_Video for temp in html.json(): File "d:\ProgramData\Anaconda3\lib\site-packages\requests\models.py", line 898, in json return complexjson.loads(self.text, **kwargs) File "d:\ProgramData\Anaconda3\lib\site-packages\simplejson_init.py", line 518, in loads return _default_decoder.decode(s) File "d:\ProgramData\Anaconda3\lib\site-packages\simplejson\decoder.py", line 370, in decode obj, end = self.raw_decode(s) File "d:\ProgramData\Anaconda3\lib\site-packages\simplejson\decoder.py", line 400, in raw_decode return self.scan_once(s, idx=_w(s, idx).end()) simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    opened by Liangchengdeye 0
Owner
lisztomania
lisztomania
Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息

wxauto Windows版本微信客户端自动化,可实现简单的发送、接收微信消息

null 357 Dec 29, 2022