关于极客时间
官网地址 : https://time.geekbang.org/
不得不说,极客时间上的大牛都是很厉害哦,真心的膜拜
BUG分享
极客时间 采用的是会员制,购买付费资源才能收听\观看
但是今天发现了一个小bug,先跟大家说一下思路
首先正常的逻辑是: 登陆-->购买资源-->观看
登陆,没得说,肯定需要验证帐号密码
问题就出现在第三个步骤上
观看的时候,他认为你已经登陆了,只需要发出去一个get请求,就可以获取到资源(我以音频为例)

虽然音频文件是分割的,我试了一下,在不登录的情况下,直接发送请求,也是可以下载的
那么,上python代码
#! /usr/bin/python
# coding: UTF-8
import requests
link = "https://res001.geekbang.org/media/audio/d5/a8/d5ba400f8b00171625bc02ceffaaf5a8/ld/ld-00001.ts"
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN",
"Host": "res001.geekbang.org",
"Origin": "https://time.geekbang.org",
"Referer": "https://time.geekbang.org/column/article/79590",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"
}
r = requests.get(link,verify=False,headers=headers)
with open("ld-00001.ts", "wb") as f:
f.write(r.content)
这样 就把第一个文件下载下来了,然后观察
# https://res001.geekbang.org/media/audio/d5/a8/d5ba400f8b00171625bc02ceffaaf5a8/ld/ld-00001.ts
# https://res001.geekbang.org/media/audio/d5/a8/d5ba400f8b00171625bc02ceffaaf5a8/ld/ld-00002.ts
就是最后一个数字不一样么,那就很简单的一个循环,就可以把所有的东西都下载下来了.
结语
个人认为极客时间还是很好的,所以就不贴出完整代码了,同时希望官方能尽快修复(加上验证)
网友评论