雨课堂自动播放视频爬虫
时间:2021-08-19
本文章向大家介绍雨课堂自动播放视频爬虫,主要包括雨课堂自动播放视频爬虫使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import time import json import os from functools import partial from selenium import webdriver from concurrent.futures import ThreadPoolExecutor, as_completed def get_cookies(): """ 获取cookies保存至本地 """ browser = webdriver.Firefox() log_url = 'https://www.yuketang.cn/web' browser.get(log_url) time.sleep(15) # 进行扫码 dictCookies = browser.get_cookies() # 获取list的cookies jsonCookies = json.dumps(dictCookies) # 转换成字符串保存 with open('cookies.txt', 'w') as f: f.write(jsonCookies) print('cookies保存成功!') def login(driver, url): driver.get(url) time.sleep(10) # 2 account_login_button = driver.find_element_by_xpath( '/html/body/div[4]/div[2]/div/div[2]/div/div/div/section[2]/div/div/div[2]/div/xt-wrap/xt-controls/xt-inner/xt-playbutton') account_login_button.click() time.sleep(500) title = driver.title print(title) driver.quit() return title def browser_initial(): """" 浏览器初始化,并打开大麦网购票界面(未登录状态) """ options = webdriver.FirefoxOptions() # options.add_argument("--headless") # 设置火狐为headless无界面模式 # options.add_argument("--disable-gpu") browser = webdriver.Firefox(options=options) browser.get( 'https://www.yuketang.cn/web') # 从本地读取cookies并刷新页面,成为已登录状态 with open('./cookies.txt', 'r', encoding='utf8') as f: listCookies = json.loads(f.read()) # 往browser里添加cookies for cookie in listCookies: cookie_dict = { 'domain': 'www.yuketang.cn', 'name': cookie.get('name'), 'value': cookie.get('value'), 'sessionid': cookie.get('value'), "expires": '', 'path': '/', 'httpOnly': False, 'HostOnly': False, 'Secure': False, 'sameSite': 'None' } browser.add_cookie(cookie_dict) browser.refresh() # 刷新网页,cookies才成功 return browser if __name__ == '__main__': # 存储COOKIES 首次运行先运行这两句 if not os.path.exists('cookies.txt'): get_cookies() browser = browser_initial() # 上面两句运行完毕后即可运行下面两句 start = 12449817 # 视频起始编号 end = 12449820 # 视频结束编号74 urls = [ f'https://www.yuketang.cn/v2/web/xcloud/video-student/7698212/{index}' for index in range(start, end) ] print(urls) #partial固定参数 part = partial(login,browser=browser) with ThreadPoolExecutor() as pool: results=pool.map(part,urls) for result in results: print(result)
原文地址:https://www.cnblogs.com/suchcools/p/15161677.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- leetcode周赛(195)
- Scrapy:修改User-Agent方法
- Pycharm 一键加引号
- 单词搜索
- JVM运行时数据区
- 最长重复子数组
- 编辑距离
- 有序矩阵中第K小的元素
- nodejs库yaml读取yml或yaml配置文件
- 爬虫小白:03.requests的使用
- Oracle GoldenGate 19 Microservices数据同步实战与故障处理
- 给“小白”漫画+图示讲解MyBatis原理,就问香不香!
- webClientTest 编写单元测试类
- 关于gorm多表联合查询(left join)的小记
- UnicodeEncodeError: 'latin-1' codec can't encode character 'u2026' in position 30: ordinal not i...