资讯专栏INFORMATION COLUMN

用Python做一个慕客视频解析搜索工具并放在自己的主页上(一)

xiao7cn / 762人阅读

摘要:刚走完第一步,后面还有很多需要做,如最主要的视频链接获取,文档获取,富文本获取,请求优化等,具体的且看后面的文章吧

用Python做一个慕客视频解析搜索工具并放在自己的主页上 -- 介绍与分析

中国大学MOOC慕客 是一个大学生在线课程学习平台,在这上面可以查看在线课程视频,不过有些视频由于开课时间的原因,结束后是不能观看的

所以要查看的话只能通过技术手段对其进行解析

完成后的工具如下
慕客视频解析搜索工具 - 链接

下面就项目的大体内容进行介绍

搭建自己的网站

首先要搭建自己的网站,当然也可以先跳过这一步,先在本机上跑起来
由于后面都是用Python语言写的,所以需要搭建一个python web服务器
笔者使用的是flask +nginx + uwsgi+ gevent
相应的教程可参考这篇教程 阿里云部署 Flask + WSGI + Nginx 详解
如果想使用Tornado的可以自己搜索相应教程
由于flask比较轻便易上手,笔者就用flask来开发了

慕客网站的内容及相应的内容信息组成

第一步很明显就是要明白如何如爬取慕客视频网站的内容及相应的内容信息组成

首先看 "数据结构 -- 浙江大学" 这个课程的链接

http://www.icourse163.org/cou...

从后段的链接可以看出,课程的主要信息在于 ZJU-93001?tid=1002019005
其中ZJU是学校的代号,即代表浙江大学
93001是课程的编号,即代表数据结构这门课程对应的id,这里我们称之为cid
1002019005很明显就是一个tid了,与93001相同的是,这个id也是唯一的,不同的是tid代表的是课程的学期id,即termId
tid实际的内容是代表第几次开课,当我们点击其他次数开课时,可以看到93001是不变的,唯独tid变了

初窥慕客的课程内容获取

我们要获取课程的内容,由上面可以看出,需要有cid和tid,由于请求课程的时候需要用到tid,
下面介绍一下只有cid的情况下如何获取tid,只有cid的情况下如何拼出整个链接

先打开http://www.icourse163.org/cou... 这个网站
按F12进行分析,可以看到一开始的请求是这样子的

Request URL:http://www.icourse163.org/cou...
Request Method:GET

对当前网页右键,查看源代码
找到tid和couseid的部分

可以看到
termId对应的那行就是tid了,是当前页面的tid,如果链接没加tid,一般是最新的tid
courseDto里id那行那就的就是couseid,即cid了

可以用Python的正则表达式库re对内容进行处理
这里抛砖引玉一下

couseId_pattern = re.compile("window.termDto.*?termId.*?"(d+)",re.S)

由些我们可以通过cid获取到tid了
整个过程耗时在网页请求上,但时间只有100多毫秒,基本可以忽略了

从上面我们所讲的cid其实是包含了学校代号的,即ZJU-93001而不是93001,当我们只有
93001的时候如何得到ZJU-93001从而能拼出网页进行访问解析呢?
由于慕客在对链接进行处理时是把ZJU忽略的,只从符号"-"后开始处理,所以我们是通过可以在93001前加个"-"来拼出整个网页,即http://www.icourse163.org/cou...也是可以访问到网页的

理解了最基本的课程代码组成,后面解析出来的信息也就容易看了。

刚走完第一步,后面还有很多需要做,
如最主要的视频链接获取,文档获取,富文本获取,请求优化等,具体的且看后面的文章吧

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40647.html

相关文章

  • [译]学习Python编程19个资源

    摘要:它需要将近美元才能买到,但是你可以下载免费的和版本。在需要花费美元来开始你的学习,将会有超过页的内容和个多小时的视频供你访问,还包括以后可以免费更新。 showImg(https://segmentfault.com/img/bVrJpw); 用Python编写代码一点都不难,事实上它一直被赞誉为最容易学的编程语言。如果你准备学习web开发, Python是一个不错的开始,甚至想做游戏...

    xiguadada 评论0 收藏0
  • 纽约蹭饭手册:怎样利Python和自动化脚本在纽约省钱又省心?

    摘要:会解释怎样使用逻辑回归,随机森林,和自动化脚本,但都不会深入。这使我在纽约地区积累了超过名粉丝,并且仍在快速增长。我收集了个帐户,这些帐户发布了许多关于纽约的优质图片。以下面这两篇帖子为例这两个帖子来自同一个纽约的帐户。 showImg(https://segmentfault.com/img/remote/1460000019393373); 在家做饭不下馆子可以减少开支已经是公开的...

    Xufc 评论0 收藏0
  • ❤️爬虫+自动化利器 selenium 之自学成才篇()❤️

    文章目录 selenium 简介selenium安装安装浏览器驱动确定浏览器版本下载驱动 定位页面元素打开指定页面id 定位name 定位class 定位tag 定位xpath 定位css 定位link 定位partial_link 定位 浏览器控制修改浏览器窗口大小浏览器前进&后退浏览器刷新浏览器窗口切换常见操作 鼠标控制单击左键单击右键双击拖动鼠标悬停 键盘控制 seleni...

    james 评论0 收藏0
  • 重磅 | 完备 AI 学习路线,最详细资源整理!

    摘要:是你学习从入门到专家必备的学习路线和优质学习资源。的数学基础最主要是高等数学线性代数概率论与数理统计三门课程,这三门课程是本科必修的。其作为机器学习的入门和进阶资料非常适合。书籍介绍深度学习通常又被称为花书,深度学习领域最经典的畅销书。 showImg(https://segmentfault.com/img/remote/1460000019011569); 【导读】本文由知名开源平...

    荆兆峰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<