基于Python和selenium的广东省干部培训网络学院自动学习脚本
本帖最后由 lntuer 于 2020-3-21 22:54 编辑一、学习网址
https://gbpx.gd.gov.cn/gdceportal/index.aspx
二、学习脚本
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/div')
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更新
解决填表内容改了,需要手机验证才可以登录
大神,可以做那种需要答题的形考吗,广东开放大学的 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
EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
EGL Driver message (Error) eglQue
ryDeviceAttribEXT: Bad attribute.
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,又费了很大的劲才安装成功,本以为可以大功告成了,接着运行脚本能自动进入手机验证网页,但还没输入账号又出现了以上信息,这次真看不懂了,求教各位好心的大神能不能帮忙看看问题在哪里,指点一二,不胜感激! 感谢楼主分享。。。我自学了2个月,感觉啥也没学会,学会了安装,书上的例子也能看懂。但是自己写,感觉啥也写不出来。。 jokony 发表于 2020-2-15 10:38
感谢楼主分享。。。我自学了2个月,感觉啥也没学会,学会了安装,书上的例子也能看懂。但是自己写,感觉啥 ...
多交流多摸索共同进步 为什么搜索不到,求教学 就是填表啊 没难度。。。。 正在学python,谢谢分享 每次点进selenium进来看内核都是js哈哈哈哈 不敢做什么,能够把想要的给做出来,那就是种本事,向你学习 学习python代码,能同时播放得还好操作些 能简单说一下原理吗