吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9422|回复: 55
收起左侧

[Python 原创] 某省干部网络学院 python selenium 自动学习

  [复制链接]
xq2581 发表于 2023-6-8 09:50
本帖最后由 xq2581 于 2023-6-8 09:52 编辑

第一次发帖,通过再群里学习和找资料   找到了通过python selenium 浏览器自动学习 某省干部网络学院 方法 非必修课程  课程先手动添加 程序循环自动播放
还未实现 部分FLASh  页面播放 欢迎大佬帮忙完善,谢谢!
[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
 
#import requests
 
from time import sleep
 
# 创建 WebDriver 对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(service=Service(r'C:\Program Files\Google\Chrome\Application\chromedriver.exe'))
#wd = webdriver.Chrome()
# 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
wd.get('https://wwwXXX.gov.cn/index.html')
 
sleep(5)
elements = wd.find_element(By.XPATH, "/html/body/div[3]/a[1]").click()
sleep(3)
elements = wd.find_element(By.XPATH, "//*[@id='username']")
elements.click()
elements.send_keys('你的账号')
sleep(3)
elements = wd.find_element(By.XPATH, '//*[@id="pwd"]')
elements.click()
elements.send_keys ('你的密码')
elements = wd.find_element(By.XPATH, "/html/body/div[2]/div/div[2]/form/div[3]/input").click()
 
 
 
 
sleep(5)
wd.get('https://www.XXX.gov.cn/student/course_myselect.do?searchType=2&menu=course')
sleep(5)
 
#循环N次播放视频       
i = 1
while i <= 30:
    #点击我要学习
    elements = wd.find_element(By.XPATH, "/html/body/div[2]/div[2]/div[2]/div/div[2]/div[1]/div[2]/div[2]/input").click()
     
    #点击播放 /html/body/div/div[3]/div[2]
    sleep(3)
    for handle in wd.window_handles:
        # 先切换到该窗口
        wd.switch_to.window(handle)
        # 得到该窗口的标题栏字符串,判断是不是我们要操作的那个窗口
        if '播放中...' in wd.title:
            # 如果是,那么这时候WebDriver对象就是对应的该该窗口,正好,跳出循环,
            break
 
    sleep(2)
    wd.switch_to.frame("course_frm")
    sleep(1)
    wd.switch_to.frame("course_frame")
    sleep(2)
    #点击“开始学习”开始播放
    elements = wd.find_element(By.XPATH, "/html/body/div/div[3]/div[2]").click()
    sleep(700)
    #关闭子窗口
    wd.close()
    #变更selenium窗口,回到原来的窗口
    wd.switch_to.window(wd.window_handles[0])#对应的是第一个窗口
    sleep(2)
    wd.get('https://www.XXX.gov.cn/student/course_myselect.do?searchType=2&menu=course')
    sleep(2)
    print(i)
    i += 1

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
青山月楹 + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
why3316 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

Sommuni 发表于 2023-6-14 09:46
wdhpsobb 发表于 2023-6-13 15:05
能详细说说吗,或者给个链接自已学

selenium的自动化有很多限制,只能记录你的操作但是不好应对特殊情况,比如说滑块,或者网络不好有元素加载慢等,甚至chormedriver还受到浏览器版本的限制,事实上并不通用,写刷课的脚本可以抓课时的上报接口,分析入参,一般会携带课程ID,观看时间等,找到上报接口直接还原请求就可以实现刷课了,一般只需要账号的Cookie或者token就可以的
pnp8cn 发表于 2023-6-14 09:53
Sommuni 发表于 2023-6-14 09:46
selenium的自动化有很多限制,只能记录你的操作但是不好应对特殊情况,比如说滑块,或者网络不好有元素加 ...

Fiddler.exe + Proxifier 找web和app接口的利器
kof21411 发表于 2023-6-8 12:58
FCGkitty 发表于 2023-6-8 13:18
你这课程添加在哪,视频不需要看么,打开就结束》
dork 发表于 2023-6-8 13:29
这种 方法有点土拨鼠
xfmiao 发表于 2023-6-8 13:47
河北干部网络学院?
头像被屏蔽
dongjing520 发表于 2023-6-8 13:59
提示: 作者被禁止或删除 内容自动屏蔽
洞见未来 发表于 2023-6-8 17:03
这个站点没有验证码需要过?
 楼主| xq2581 发表于 2023-6-8 17:22
洞见未来 发表于 2023-6-8 17:03
这个站点没有验证码需要过?

没有验证吗
 楼主| xq2581 发表于 2023-6-8 17:24
FCGkitty 发表于 2023-6-8 13:18
你这课程添加在哪,视频不需要看么,打开就结束》

wd.get('https://www.XXX.gov.cn/student/course_myselect.do?searchType=2&menu=course') 这里就是视频列表   每次都是点击第一个
Sommuni 发表于 2023-6-9 11:32
该说不说,这方法有点。。。。。你可以抓个上报接口然后写个py脚本放服务器挂的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-11-6 20:07

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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