FreeTstar

loving Freedom + + loving Linux

  • 首页
  • Archive
  • 关于
  • 杂七杂八
  • 留言板
Twitter Sina RSS

用Python抓取天津师范大学VOD视频资源的地址

发布于 2011年07月5日 由 freetstar
27 条评论发表评论

好不容易,软磨硬泡地在学校14号楼住下来,要不就去睡大街了,学校的理由:只让重修的同学住14号,然后我就好不容易“重修”了。接下来就是白天博理晚上14号楼的生活。。然后就每天就只能教育网了,教育网什么最好,VOD!之前一直惦记着下载VOD上的资源,看到以前师大物电的同学有过寻找VOD真实资源的经过,天津师范大学校园网(教育网)VOD下载方法,

于是想用python搞一个。简单实现了下,输入想要下载的剧集id和集数(这个需要去网页的源码理看,上边的链接里有介绍),然后自动解释出下载链接的真实地址,

思路:

1 首先访问http://59.67.75.254/actIndex.do页面,这是资源的列表页,但是需要匿名登陆才可以看见,而为什么在这里先访问的actIndex.do页面,而不是先匿名登陆,因为我发现首先访问http://59.67.75.254/login.jsp登陆页面没有匿名访问选项,偶然发现先访问actIndex.do页面的话,在http回话中会有一个附有JesseionID的URL做为Response headers的Location返回,然后只要访问这个带JesseionID的URL,就可以实现登录的目的
2 访问上述所说的带JesseionID的URL,这个页面实际上http://59.67.75.254/login.jsp?JESSEIONID=XXX,这里简单的用一个GET请求即可

3 再次访问actIndex.do页面,这时候就真正登录进来了,可以查看资源列表文件了

4 在actIndex.do页面,选择某个想要看的视频,查看页面源文件,查看此视频对应的progid是多少,每个视频文件的progid唯一的,还有查看每个有多少集,举个例子:柯南剧场的独有的progid是3349,而 柯南剧场的有400多集,所以柯南剧场对应的volume就从1-400多这个范围移动,这个具体的含义不懂得话还可以参考上边物电的同学的链接

5 接着访问下载页面http://59.67.75.254/actDownload.do,用GET方法请求,带着上边的progid和volume信息,在http会话中发现在response headers中还有Location标志,指向下载的download.jsp页面,这时urilib2会自动访问download.jsp,然后做一个跳转,在接收回来的response body会有真实资源的地址,如

<html><head><title>下载</title><script language =”javascript” src =”./js/vod.js”></script><script language=javascript> DownLoadPath(’59.67.75.254:2880′,’/moive2/娱乐天地/动漫/116009427841.rmvb’,’3499′,’RMVB’,'名侦探柯南’);</script></head></html>


6 那么下载的话,链接就是
http://59.67.75.254:2880/moive2/娱乐天地/动漫/116009427841.rmvb ,文件名可以自己更改下

要注意的:

1 师大VOD需要登录后才能观看,这一步在代码里已经实现

2 师大VOD还检测VOD客户端安装没有,所以使用代码前一定要安装vod客户端。。当然他是用js检测的vod安装情况,要是屏蔽或者欺骗js代码就好了,可惜不会

3 貌似只支持IE内核的浏览器,我觉得可能有2个原因:(1) js利用ie的某些东西检测vod安装情况和版本 (2) 应用本身不支持。而我我在代码中用的是MSIE9的user-agent,代码也是在win7+ie9下运行的

代码丑陋,见笑:

# -*- coding=gb2312 -*-
 import urllib
 import urllib2
 import cookielib
 import re

 user_agent = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'
 #注册一个cookie的opener,用来带着cookie访问url
 cookie = cookielib.CookieJar()
 cookie_support= urllib2.HTTPCookieProcessor(cookie)
 opener = urllib2.build_opener(cookie_support)
 urllib2.install_opener(opener)
 headers = {'User-Agent':user_agent,"Keep-Alive":"115"}

#首先访问actIndex页面
 url2 = 'http://59.67.75.254/actIndex.do'
 req2 = urllib2.Request(url2,headers)
 response2 = opener.open(url2)
 the_page2 = response2.read()
#print the_page2
#获取SessionID,然后从第一次访问时返回的response2中截取url,也就是带sessionid的登录url 
 url1 = response2.geturl()
 response1 = opener.open(url1) the_page1 = response1.read()

#再次访问actIndex页面,这时候就以匿名用户的身份登录喽
 url3 = 'http://59.67.75.254/actIndex.do'
 req3 = urllib2.Request(url3,headers)
 response3 = opener.open(url3)
 the_page3 = response3.read()
 #print the_page3

#登录好之后进行下载的操作
 url4 = 'http://59.67.75.254/actDownload.do'
 values = {'volume':'1',
 'progid':'3499'
 }  //这个即表示3499这个id的剧集中的第一集
 data = urllib.urlencode(values)
 req4 = urllib2.Request(url4,data,headers)
 response4 = urllib2.urlopen(req4)
 the_page4 = response4.read().decode('gb2312')
 result = re.findall("'59.67.75.*'",the_page4)
 print "http://"+str(result[0].encode('gb2312').split(',')[0]).strip("'") + str(result[0].encode('gb2312').split(',')[1]).strip("'")
  //打印出vod视频链接
分类:python
ubuntu下用Eclipse搭建C++开发环境
Linux下OpenVPN+chnroute聪明访问WEB

27 则回应给 “用Python抓取天津师范大学VOD视频资源的地址”

  1. 奶牛 CHINA Mozilla Firefox Windows 说道:
    2011年07月16日 5:56 下午

    教育网资源就是丰富的说,而且速度刚刚滴~~~

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 16th, 2011 at 6:22 下午

    @奶牛, 必须的,非常快,非常快

    [回复]

  2. 第三眼 CHINA Mozilla Firefox Windows 说道:
    2011年07月16日 9:16 上午

    这个vod还在啊,02年的时候我就在上面的老电影了…

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 16th, 2011 at 12:35 下午

    一直在了..

    [回复]

  3. 凡尘飞扬 CHINA Google Chrome Windows 说道:
    2011年07月10日 3:43 下午

    决定开始学习Python,主要是看中了跨平台,连长多指教啊。

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 10th, 2011 at 8:42 下午

    @凡尘飞扬, i我也是菜鸟。。。

    [回复]

    凡尘飞扬 CHINA Google Chrome Windows 回复:
    七月 10th, 2011 at 8:58 下午

    @freetstar, 刚看了点文档,现在是找不着北了。和我学过的其他语言差异有些大…

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 10th, 2011 at 9:13 下午

    @凡尘飞扬, python还是很好学的,找本基础教程先系统看下吧

    [回复]

  4. 囧啊囧 CHINA Google Chrome Windows 说道:
    2011年07月9日 10:27 下午

    知不知道哪些大学的图书馆资源外网可以下载啊?我想下点图书配套光盘。

    [回复]

  5. Mucid CHINA Mozilla Firefox Windows 说道:
    2011年07月5日 5:18 下午

    哇哇,难道下载 :-P 动作片也可以的说!

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    七月 5th, 2011 at 5:38 下午

    @Mucid, VOD么有动作片。。

    [回复]

  6. 9hills CHINA Google Chrome Windows 说道:
    2011年07月5日 4:50 下午

    在Windows下直接用GBK也是一种解决中文编码的方法。。。

    就是有点ugly,不过编码问题真是。。。很麻烦,不知道python3有什么改进

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    七月 5th, 2011 at 4:51 下午

    @9hills, 无奈。。哪一天要集中时间试验下python2里的处理编码的过程

    [回复]

  7. 飘零迷丁儿 CHINA Google Chrome Ubuntu Linux 说道:
    2011年07月5日 3:47 下午

    连长V5^^p.s. 你给的ifttt已收到^^thx

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 3:52 下午

    你们都学坏了…

    [回复]

  8. walfred CHINA Google Chrome Linux 说道:
    2011年07月5日 3:28 下午

    有所求,然后有所行动,蛮好的,你听说过chrome os吗,可以下源码看看,里面python用的很多,谷歌钟爱阿

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 3:34 下午

    @walfred, 是滴!有可能搞一个完整的script供自己玩,哈哈 :twisted:
    chrome os.我感觉自己还达不到那个层次阿

    [回复]

    walfred CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 5:13 下午

    @freetstar, 自已编译的叫chromium os。其实看穿来是gentoo的变种+谷歌的chrome浏览器,里面采用的完全是gentoo的portage管理方式。其编译脚本都基本是shell脚本加python脚本

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    七月 5th, 2011 at 5:39 下午

    @walfred, 看你颇有研究啊,跑完的意思相当于浏览器做os?

    [回复]

    walfred Google Chrome Windows 回复:
    七月 5th, 2011 at 7:39 下午

    @freetstar, 嗯 这就是云嘛
    ps 我实习期的工作就是这个嘛 呵呵

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 8:53 下午

    @walfred,额,哪家公司干这个阿

    [回复]

  9. 林海草原 Mozilla Firefox Windows 说道:
    2011年07月5日 1:21 下午

    python有魅力,我想学还没学。还有哈,你的博客没开启静态吗?地址中还带有.php字样呢?

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 1:24 下午

    @林海草原, 没有….python很不错

    [回复]

  10. Tao Zhu CHINA Mozilla Firefox Linux 说道:
    2011年07月5日 11:43 上午

    又是只支持IE的。大家赶快先把IE的份额夺下来

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 11:44 上午

    @Tao Zhu, 恩…貌似把js搞定就可以.可惜不会

    [回复]

  11. dorole CHINA Mozilla Firefox Windows 说道:
    2011年07月5日 11:12 上午

    这教育网不错,能看VOD,清晰度怎么样 :twisted:

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    七月 5th, 2011 at 11:13 上午

    @dorole, 清晰度扛扛地! :twisted:

    [回复]

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注

*

*


疑问 开心 悲伤 邪恶 惊叹 微笑 脸红 笑 惊讶 惊奇 迷惑 酷 憨笑 生气 阴险 转眼球 眨眼 主意 箭头 中立 哭 大笑

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image

点击取消回复
第 1 页,共 1 页1
  • 欢迎订阅

  • Github

  • 近期评论

    • freetstar CHINA Mozilla Firefox Linux 发表在《留言板》
    • _Fly CHINA Google Chrome Linux 发表在《使用e4rat加速你的linux启动速度(ext4文件系统专用)》
    • walfred Mozilla Firefox Windows 发表在《留言板》
    • freetstar CHINA Mozilla Firefox Windows 发表在《用landslide创建html5 slide》
  • Spread Firefox Affiliate Button
  • 我的豆瓣

  • 链接表

    • 51开源社区
    • Adam's
    • delectate's blog
    • Don's
    • fl
    • ghostunix
    • Jasey Wang
    • Jerry's Blog
    • Moolight@Ericyue
    • OSMSG
    • panda
    • Pity is the Bomp
    • PT ubuntu
    • Tao Zhu
    • ubuntuhome
    • WOW!ubuntu
    • zhangzhfang
    • 丕字的blog
    • 傻东の学习笔记
    • 奶牛的blog
    • 孤风颠影
    • 弯柚博客
    • 熊猫党军委主席
    • 靖 轩
    • 马力哥
    • 黑孩儿
  • 我的支付宝

  • 功能

    • 登录
    • 文章 RSS
    • 评论 RSS
    • WordPress.org
© FreeTstar. WordPress 强力驱动 | Nest Theme by YChong