想学python,苦于无资源,偶然得知有人说有全套麦某学院的教学视频,赶紧留了个邮箱,几天无果,只能自己动手了

来到麦某学院的官方网站,发现网站上的视频都是免费的,是直接用html5视频的,于是一颗爬虫的种子悄然的发芽了

第一步:打开网站的源代码,用截取各阶段的相应章节地址

1. 从主页上看,python教学视频分成了四个阶段,我们需要把每个阶段的一系列视频都捕获到

2.分析该页面的源代码,发现所有视频链接都在 class=“lead-img”的<a href="" .....里面

于是通过代码:

<span style="font-size:18px;">pythonreg = re.compile(r'lead-img">.+?<a href="(.+?)" title="(.+?)"', re.DOTALL)
pagedata = pythonreg .findall(html)</span>

截取得数据:

<span style="font-size:18px;">/course/python/425-5465</span>

再与根目录拼接就可到达下图的相应教程中

第二步:根据第一步所截取的所有章节的地址获取所有章节的课程地址

1. 随手打开一个章节,发现最右边有全部课程的相关链接

2.再看网页源代码

所有信息都在<div id = “playlist” 的 <li 的 href=""中

于是可通过代码:

<span style="font-size:18px;">partreg = re.compile(r'id="playlist".+?<div>', re.DOTALL)       # 获取课程数据的一部分
datareg = re.compile(r'<li.+?href="(.+?)"', re.DOTALL)          # 将课程链接剥离出来
coursedata = datareg.findall(partreg.findall(html))</span>

获取每个视频的播放地址

<span style="font-size:18px;">/course/python/425-5466/</span>

第三步:从microohvideo中提取出视频下载地址

<span style="font-size:18px;">mp4reg = re.compile(r'id="microohvideo".+?src="(.+?)"', re.DOTALL)</span>

得到视频地址
www.xxxx.com/csshtml3.m4v

至此已经得到了麦x学院的所有python教学视频链接

我将这些链接地址全部存入mysql中,最后附上代码

<pre name="code" class="python"># -*-coding:utf-8-*-
# --------------------
# 爬取麦x学院python教程的大纲链接
# 2015.10.26
# ---------------------
import re       # 正则表达式
import urllib2     # 从地址获取网页源代码
import saveDate2DB # 数据库的操作# 打开网页utl
# 用reg规则返回自己要的数据
def getdata(url,reg):webpage = urllib2.urlopen(url, timeout=10)html = webpage.read()pagedata = reg.findall(html)return pagedatapythonurl = "http://www.maiziedu.com/course/python/"        # 数据源网址
pythonreg = re.compile(r'lead-img">.+?<a href="(.+?)" title="(.+?)"', re.DOTALL)    # 各阶段的章节地址
pythons = getdata(pythonurl, pythonreg)      # python大纲中的子地址urls = []
for course in pythons:      # 从python大纲把所有课程链接找出来print '-----------------正在获取', course[1], '课程链接---------------------'partreg = re.compile(r'id="playlist".+?<div>', re.DOTALL)       # 获取playlist部分datareg = re.compile(r'<li.+?href="(.+?)"', re.DOTALL)          # 将playlist部分中的课程链接剥离出来mp4reg = re.compile(r'id="microohvideo".+?src="(.+?)"', re.DOTALL)      # 将视频匹配出来courseurl = "http://www.maiziedu.com" + course[0]coursedata = datareg.findall(getdata(courseurl, partreg)[0])        # 获取所有课程视频的链接mp4urls = []        # 将所有视频地址存入list中for mp4html in coursedata:mp4url = getdata('http://www.maiziedu.com'+mp4html, mp4reg)print mp4url[0]mp4urls.append(mp4url[0])# saveDate2DB.savedata(course[1], mp4urls)    # 将数据存入数据库

程序运行结果:

另外,我还做了另一项有趣的行动

将下载链接转换为qq旋风下载链接

用程序打开qq旋风并且将数据一个个下载

初用python爬取麦x学院python教学视频相关推荐

  1. python爬取股票信息_利用Python爬取网易上证所有股票数据(代码

    利用Python爬取网易上证所有股票数据(代码 发布时间:2018-04-14 17:30, 浏览次数:1261 , 标签: Python import urllib.request import r ...

  2. 用Python爬取B站、腾讯视频、芒果TV和爱奇艺视频弹幕

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  3. python爬取前程无忧_用python爬取前程无忧网,看看我们是否真的“前程无忧”?...

    The best time to plant a tree was 10 years ago,the second best time is now. 种一棵树最好的时间是十年前,其次是现在. 利用p ...

  4. python爬取mysql_如何利用 Python+MySQL 存储爬取的币乎数据

    1LSGO软件技术团队 贡献人:李金原 如果喜欢这里的内容,你能够给我最大的帮助就是转发,告诉你的朋友,鼓励他们一起来学习. If you like the content here, the gre ...

  5. python 爬取软件_用Python爬取了三大相亲软件评论区,结果...

    小三:怎么了小二?一副愁眉苦脸的样子. 小二:唉!这不是快过年了吗,家里又催相亲了 ... 小三:现在不是流行网恋吗,你可以试试相亲软件呀. 小二:这玩意靠谱吗? 小三:我也没用过,你自己看看软件评论 ...

  6. python爬取B站up主全部视频封面

    B站up主的点赞投币转发等信息,以及弹幕文件.评论文件等等都可以调用特定的API接口来获得. python爬取B站弹幕.绘制词云等点击下方链接 https://blog.csdn.net/weixin ...

  7. python爬取论坛图片_[python爬虫] Selenium定向爬取虎扑篮球海量精美图片

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...

  8. python爬取百度百科词条-python简单爬虫爬取百度百科python词条网页

    目标分析: 目标:百度百科python词条相关词条网页 - 标题和简介 入口页:https://baike.baidu.com/item/Python/407313 URL格式: - 词条页面URL: ...

  9. python爬取音乐_利用Python对网易云音乐进行爬取!无所不爬的爬虫啊!

    今天,我们利用Python 中的selenium爬取网易云音乐中林俊杰<将故事写成我们>的评论,具体界面如下: 私信小编01 获取数十套PDF!爬虫 web都有的呢! 具体代码如下: #此 ...

  10. 爬虫python爬取页面请求_03 Python网络爬虫第三弹《爬取get请求的页面数据》,urllib...

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

最新文章

  1. css多行省略号兼容ie,css超出2行部分省略号……,兼容ie
  2. 破解数据流通痛点,华控清交的隐私计算之道
  3. HALCON测量工具
  4. .pyc文件还原.py文件_从镜像文件还原分区 (系统还原)
  5. 驱动人生(离线网卡版)_驱动人生8.0版正式发布,最新功能速看
  6. logback利用mdc机制为日志增加traceId
  7. 有了C盘之后,添加另外一个磁盘的方法
  8. [OS] 死锁相关知识点以及银行家算法详解
  9. 由来源地址决定显示什么页面
  10. cad隐藏图层命令快捷键_CAD各种插件大全汇总,1G多绘图神器+快捷键命令大全,无套路分享...
  11. 什么是服务器防护,什么是硬防?什么是软防?
  12. 青铜器RDM与PTC Windchill协同构建货真价实的PLM解决方案
  13. NOIp模拟赛 巨神兵(状压DP 容斥)
  14. 机器人感知与规划笔记 (2) - 传感器(Sensor)类型及其限制
  15. 如何控制计算机远程开机、运行和关机
  16. 教程 | 阿克曼结构移动机器人的gazebo仿真(五)
  17. python爬虫爬取网页内容
  18. 情人节程序员用HTML网页表白【粉红爱心表白】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript
  19. 中小企业如何选择适合的ERP系统?
  20. ruby , each,map,collect,inject,reject,select,shuffle[n..m],flatten

热门文章

  1. 电赛练习之旋转倒立摆PID调节
  2. VS 番茄助手添加头注释 以及使用方式
  3. [系统安装]_VirtualBox + slackware64-15.0-install-dvd + fiuxbox 窗口管理器 + 终端界面鼠标支持
  4. 一位平凡毕业生的大学四年
  5. “Error launching Console Application PDFLaTeX ... “的解决方法
  6. bulk insert java_java oracle bulk insert
  7. L3HCTF bypass出题人视角
  8. java成绩管理系统代码_[转载]我写的Java学生成绩管理系统源代码
  9. Unity编辑器扩展工具Shader Forge和Behavior Designer(行为树)和 Cinema Director
  10. exec还原oracle,symantec Backup exec 恢复Recovery Oracle 数据库