网易公开课付费视频没有加密,可以随意下载到本地

最近发现看网易公开课的时候发现一个问题,网易公开课付费视频没有加密,一次付费便可以随意下载到本地

例如现在我们打开一个付费视频https://vip.open.163.com/courses/273?p=pay_list
这里写图片描述
打开试看视频【硬笔行书套路01】
这里写图片描述
F12打开控制台,查看相关信息,会发现网易公开课是使用flash+flv的方案进行视频播放的,不管是否是付费视频都是flv格式,非付费视频只要复制对应的url链接,就可以直接通过迅雷等工具下载。

现在我用1元购买这个视频教程,然后在打开视频【硬笔行书套路02】
这里写图片描述
然后你会发现即使是付费视频依然采用的是没有加密的flv格式播放,所谓的付费视频只是在代码层做了一层验证而已,这样会导致用户只要一次付费就可以随意下载整个视频教程到本地。

个人感觉,这么做太不安全了!

跟网易公开课对比,网易云课堂使用的就是加密的flv方案,简单通用,适合并发量不高的网站,慕课网、优酷视频、腾讯视频等使用的则是将视频切割成多个子文件进行加密传输播放的方案,一来是安全,防止视频被人随意抓取,其次是满足了视频的高并发传输播放。
慕课网截图
这里写图片描述

在Python中,爬取付费PDF文档并下载到本地通常涉及到网络请求、自动化登录(如果网站有登录验证)、解析网页内容寻找下载链接等步骤。这里以Selenium库配合requests库为例,因为很多付费资源可能需要JavaScript的支持才能显示下载链接。 1. **安装必要的库**: 首先,你需要安装`selenium`, `webdriver_manager`, 和 `requests`。可以使用pip进行安装: ``` pip install selenium webdriver_manager requests ``` 2. **设置WebDriver**: Selenium需要浏览器驱动(WebDriver),比如ChromeDriver。你可以从ChromeDriver官网下载对应版本的驱动,并将其放置到系统的PATH中,或者通过`webdriver_manager`管理。 3. **模拟浏览器操作**: 使用`webdriver_manager`创建浏览器实例,然后打开目标页面: ```python from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get('付费PDF文档URL') ``` 4. **登录处理(如果有)**: 如果网站需要登录,找到登录表单的元素,填写用户名和密码,然后点击登录按钮: ```python login_form = driver.find_element_by_id('login-form') # 假设id为login-form username_input = login_form.find_element_by_name('username') password_input = login_form.find_element_by_name('password') username_input.send_keys('your_username') password_input.send_keys('your_password') login_button = login_form.find_element_by_css_selector('.login-button') login_button.click() ``` 5. **查找和下载链接**: 寻找页面上隐藏的下载链接,这可能需要根据HTML结构或特定CSS类来定位。找到后,使用`requests`库下载文件: ```python download_link = driver.find_element_by_xpath('//a[contains(@href, "download")]') # 假设XPath为... response = requests.get(download_link.get_attribute('href'), stream=True) with open('target_filename.pdf', 'wb') as f: for chunk in response.iter_content(chunk_size=1024): if chunk: f.write(chunk) ``` 6. **关闭浏览器**: 爬虫任务完成后记得关闭浏览器实例: ```python driver.quit() ``` 注意:这只是一个基础示例,实际操作可能会因网站结构和防爬策略的不同而有所变化。在进行此类操作时,请遵守网站的使用条款,尊重版权,并确保你的行为合法合规。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值