网易公开课线性代数代数系列课程
这个系列一共有35集,一个个手动去获取Reqeust url肯定是不现实的,如果requests.get(url)的话得到的只有swf的链接。
提供一个思路:
1.使用python selenium打开该页面,使用用selenium提供的方法点击:“查看全部”;
2.然后利用把整个系列所有课程的页面链接保存下来:
3.然后用selenium依次打开这些页面,获取swf的地址。
这个可能跟python
关系不大了,从网络请求可以看到,在请求flv之前,有个xml的请求:
http://live.ws.126.net/movie/D/K/2_M82ICR1D9_M83C881DK.xml
底下是里面的片段:
<title>可汗学院公开课:线性代数</title> <pnumber>2</pnumber> <encrypt>1</encrypt> <flvUrl> <hd default="true"> <flv>E2BA84651E56C82C8CE97002DC1F7CAEA29180ACE8C6DADCA45104768872534AA5C214B0867E1462ED82A6D12127FFD91F65A0C004BD46482FBC5902AA0AE0F3318D0D31C116F4D94B2C3AB249A726A3</flv> </hd> </flvUrl> <flvUrlOrigin> <hd default="true"> <flv>E2BA84651E56C82C8CE97002DC1F7CAEA29180ACE8C6DADCA45104768872534AA5C214B0867E1462ED82A6D12127FFD9FE322DE168A2EE7A2661A339A477B36BE6FEA21BC453290E93A64F68A3A65438</flv> </hd> </flvUrlOrigin> <playurl> <SD default="true"> <mp4>E2BA84651E56C82C8CE97002DC1F7CAEA29180ACE8C6DADCA45104768872534AA5C214B0867E1462ED82A6D12127FFD91F65A0C004BD46482FBC5902AA0AE0F3318D0D31C116F4D94B2C3AB249A726A3</mp4> <mp4>605CF28E9E16FC9350EF99E895DD166C6099596C18F1EE427C00BCF1E5942FD15C317D341FCFAB5B052EB73E2E59B2C638FC681CE6AD7BAE7BC73D7941433719F1E6069F9816FDF1AC941EAAA3DE60CE</mp4> </SD> </playurl>
可以看到flv的地址是加密的一个字符串,所以本质上就是要解密这个地址。播放器实际就是个flash文件,可以逆向flash文件,找到解密的算法,用Python实现一下。
或者可以搜索一下,也有一些讨论:
https://www.v2ex.com/t/181487
https://www.zhihu.com/questio...