吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14739|回复: 65
收起左侧

[Python 转载] 基于Python和selenium的广东省干部培训网络学院自动学习脚本

[复制链接]
lntuer 发表于 2020-2-15 10:22
本帖最后由 lntuer 于 2020-3-21 22:54 编辑

一、学习网址
https://gbpx.gd.gov.cn/gdceportal/index.aspx
二、学习脚本
[Python] 纯文本查看 复制代码
from selenium import webdriver
import pyautogui
import time
#输入账号
username="****"
#输入密码
passwd="****"
login_url='https://gbpx.gd.gov.cn/gdceportal/index.aspx'
option = webdriver.ChromeOptions()
option.add_argument('--mute-audio')
browser = webdriver.Chrome(chrome_options=option)
browser.maximize_window()
browser.get(login_url)
browser.implicitly_wait(10)
elem=browser.find_element_by_xpath('//*[@id="pnlLogin"]/div[1]/div[2]')
elem.click()
time.sleep(1)
elem=browser.find_element_by_id("txtLoginName")
elem.clear()
elem.send_keys(username)
time.sleep(1)
elem=browser.find_element_by_id("txtPassword")
elem.clear()
elem.send_keys(passwd)
time.sleep(1)
code_num=pyautogui.prompt("请输入验证码:")
elem=browser.find_element_by_id("txtValid")
elem.clear()
elem.send_keys(code_num)
elem=browser.find_element_by_id('lnkbtnLogin')
elem.click()
time.sleep(3)
elem=browser.find_element_by_id('ctl00_CPHMain_btnStudy')
elem.click()
time.sleep(3)
browser.switch_to_frame('ifrContent')
time.sleep(1)
js_001='return document.getElementsByClassName("courseware-list-reed").length;'
video_unstudy_num=browser.execute_script(js_001)
time.sleep(3)
print("该目录下还有{}个视频未学习……".format(video_unstudy_num))
for i in range(0,int(video_unstudy_num)):
    js_006='document.getElementsByClassName("courseware-list-reed")[{}].click()'.format(i)
    unstudy_lession_urls=browser.execute_script(js_006)
    time.sleep(3)

小白需要安装好Python和selenium的环境,大神请直接忽略本代码
2020.3.21更新
解决填表内容改了,需要手机验证才可以登录

免费评分

参与人数 5吾爱币 +4 热心值 +5 收起 理由
q279177054 + 1 + 1 大佬不懂!求帮助!
sunrainnet + 1 + 1 谢谢@Thanks!
luar + 1 填表内容改了,需要手机验证才可以登录。
elceric + 1 + 1 我很赞同!
む人生似梦 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chen9788 发表于 2020-4-27 14:12
大神,可以做那种需要答题的形考吗,广东开放大学的
mxming 发表于 2020-8-15 10:45
C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\888.py:11: Depr
ecationWarning: use options instead of chrome_options
  browser = webdriver.Chrome(chrome_options=option)

DevTools listening on ws://127.0.0.1:50509/devtools/browser/773386eb-14f3-49d3-9
4c3-2e04e61f0656
[0815/095946.015:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
[0815/095946.018:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
[0815/095946.020:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
[0815/095946.021:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
[0815/095946.022:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
[0815/095947.736:ERROR:gl_surface_egl.cc(699)] EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\888.py"
, line 19, in <module>
    elem.clear()
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\sit
e-packages\selenium\webdriver\remote\webelement.py", line 95, in clear
    self._execute(Command.CLEAR_ELEMENT)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\sit
e-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\sit
e-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\sit
e-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_respon
se
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not
interactable
  (Session info: chrome=84.0.4147.125)

我是一个小白,之前这些都完全不懂,用百度还熬夜研究了两天,安装好python、selenium、chrome、chromedriver并搭建好了环境,测试发现还缺少pyautogui,又费了很大的劲才安装成功,本以为可以大功告成了,接着运行脚本能自动进入手机验证网页,但还没输入账号又出现了以上信息,这次真看不懂了,求教各位好心的大神能不能帮忙看看问题在哪里,指点一二,不胜感激!
1.png
jokony 发表于 2020-2-15 10:38
感谢楼主分享。。。我自学了2个月,感觉啥也没学会,学会了安装,书上的例子也能看懂。但是自己写,感觉啥也写不出来。。
 楼主| lntuer 发表于 2020-2-15 10:48
jokony 发表于 2020-2-15 10:38
感谢楼主分享。。。我自学了2个月,感觉啥也没学会,学会了安装,书上的例子也能看懂。但是自己写,感觉啥 ...

多交流多摸索共同进步
romeo141212 发表于 2020-2-15 11:01
为什么搜索不到,求教学
等到烟火也清凉 发表于 2020-2-15 11:06
就是填表啊 没难度。。。。
goodjob 发表于 2020-2-15 11:15
正在学python,谢谢分享
q6378561 发表于 2020-2-15 11:23
每次点进selenium进来看内核都是js哈哈哈哈
denghui423 发表于 2020-2-15 11:42
不敢做什么,能够把想要的给做出来,那就是种本事,向你学习
wisoft 发表于 2020-2-15 14:06
学习python代码,能同时播放得还好操作些
心灵之窗 发表于 2020-2-15 14:15
能简单说一下原理吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表