1 #coding: UTF-8

2 importos3 importsys4 importrequests5 importurllib.request,io6 from html.parser importHTMLParser7

8 #全局变量

9

10 id_list = set() #保存视频ID的列表

11 id_dict = {} #保存id和对应子视频数目

12 cookies = {} #保存cookies

13

14 #HTML解析类

15 classMyHTMLParser(HTMLParser):16 def __init__(self, key, attr):17 HTMLParser.__init__(self)18 self.links =[]19 self.keys =key20 self.attr =attr21 defhandle_starttag(self, tag, attrs):22 #print "Encountered the beginning of a %s tag" % tag

23 #if tag == "source":

24 if tag ==self.keys:25 if len(attrs) ==0:26 pass

27 else:28 for (variable, value) inattrs:29 #if variable == "src":

30 if variable ==self.attr:31 self.links.append(value)32

33

34 #解析cookies字典

35 defgetCookies(cookies_str):36 globalcookies37 for line in cookiesStr.split(';'):38 #其设置为1就会把字符串拆分成2份

39 name, value = line.strip().split('=', 1)40 cookies[name] =value41

42 defgetHtml(url, key, value):43 globalcookies44 r = requests.get(url, cookies=cookies)45 content = r.content.decode('UTF-8')46 hp = MyHTMLParser("source", "src")47 hp.feed(content)48 hp.close()49 print(hp.links)50 for link inhp.links:51 link_str =str(link)52 if link_str.find(".mp4") >=0:53 downloadFile(link, key, value)54 else:55 print("没有找到对应视频")56

57

58 #获取课程数目

59 defgetCourseNum(url):60 globalcookies61 url_list =set()62 r = requests.get(url, cookies=cookies)63 content = r.content.decode('UTF-8')64 hp = MyHTMLParser("a", "href")65 hp.feed(content)66 hp.close()67 for link inhp.links:68 link_str =str(link)69 if link_str.find("http://www.jikexueyuan.com/course/") >= 0 and link_str.find(".html?ss=1") >=0:70 url_list.add(link_str)71 return url_list.__len__()72

73 #获取所有视频ID,根据目录网页

74 defgetIdList(root):75 globalcookies76 r = requests.get(root, cookies=cookies)77 content = r.content.decode('UTF-8')78 hp = MyHTMLParser("a", "href")79 hp.feed(content)80 hp.close()81 #print(hp.links)

82 #声明引用全局id_list,在最上面定义

83 globalid_list84 globalid_dict85

86 for link inhp.links:87 link_str =str(link)88 if link_str.find("http://www.jikexueyuan.com/course/") >= 0 and link_str.find(".html")>=0:89 #print(link)

90 c_id = link_str.lstrip("http://www.jikexueyuan.com/course/").rstrip(".html")91 if c_id not inid_list:92 id_dict[c_id] =getCourseNum(link_str)93 print(c_id, id_dict[c_id])94 id_list.add(c_id)95 print(id_dict)96

97 defdownloadFile(url, key, value):98 #url = 'http://cv4.jikexueyuan.com/10de45bbf83e450ff5e11ff4599d7166/201603202253/cocos2d-x/course_712/01/video/c712b_01_h264_sd_960_540.mp4'

99 r =requests.get(url)100 file_name = str(key)+"_"+str(value)+".mp4"

101 with open(file_name, "wb") as code:102 code.write(r.content)103

104 if __name__=="__main__":105 count =0106 #解析cookies 利用免费时间下载需要视频,需要账号的cookies

107 cookiesStr = "通过谷歌浏览器可以获取"

108 getCookies(cookiesStr)109

110

111 root = "http://ke.jikexueyuan.com/xilie/331?huodong=shequn_0307"

112 getIdList(root)113

114 head = "http://www.jikexueyuan.com/course/"

115

116 for key inid_dict:117 if id_dict[key] <=0:118 print(id_dict[key],"没有数据")119 break

120 for i in range(1, id_dict[key]+1):121 url = head+key+"_"+str(i)+".html?ss=1"

122 print("下载:")123 print(url)124 count += 1

125 getHtml(url, key, i)126 print("视频总数:")127 print(count)

python抓取收费视频_python抓取某学院视频相关推荐

  1. python爬取收费漫画_python爬取收费漫画_Python爬虫,爬取腾讯漫画实战

    先上个爬取的结果图 最后的结果为每部漫画按章节保存 运行环境 ide vs2019 python3.7 chrome.chromedriver chrome和chromedriver的版本需要相互对应 ...

  2. python抓取视频_python实现超简单的视频对象提取功能

    视频对象提取 与其说是视频对象提取,不如说是视频颜色提取,因为其本质还是使用了OpenCV的HSV颜色物体检测.下面话不多说了,来一起看看详细的介绍吧. HSV介绍 HSV分别代表,色调(H:hue) ...

  3. python抓取数据包_python抓数据包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 前言:数据科学越来越火了,网页是数据很大的一个来源. 最近很多人问怎么抓网页数据 ...

  4. python抓取微博评论_Python爬取新浪微博评论数据,你有空了解一下?

    开发工具 Python版本:3.6.4 相关模块: argparse模块: requests模块: jieba模块: wordcloud模块: 以及一些Python自带的模块. 环境搭建 安装Pyth ...

  5. python爬关键词百度指数_Python 抓取指定关键词的百度指数

    百度指数很多时候在我们做项目的时候会很有帮助,从搜索引擎的流量端给到我们一些帮助,比如:家具行业的销量跟"装修","新房","二手房"等关键 ...

  6. python爬app视频_python爬取抖音APP视频教程

    本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...

  7. python 爬取搞笑视频_Python爬取知乎上搞笑视频,一顿爆笑送给大家

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...

  8. python爬抖音短视频_python爬取抖音小视频

    import os,json,requests #伪装头 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) App ...

  9. python合并ts视频_python爬取视频网站m3u8视频,下载.ts后缀文件,合并成整视频

    最近发现一些网站,可以解析各大视频网站的vip.仔细想了想,这也算是爬虫呀,爬的是视频数据. 首先选取一个视频网站,我选的是 影视大全 ,然后选择上映不久的电影 "一出好戏" . ...

  10. python公众号留言功能_Python 爬取公众号文章、评论

    前段时间有个爬取公众号评论小需求,花了几天查了不少资料,实现方案有好几种,最后其中一种得以实现.参考 [Python爬虫]微信公众号历史文章和文章评论API分析 . 本人是 Python 小白,会忽略 ...

最新文章

  1. swing的gui是通过何种模式进行事件响应与监听_【Vert.x准备篇2】C10K问题与Reactor模式...
  2. 【计算机视觉】森林火灾检测-1
  3. 信息系统项目管理师-项目采购管理知识点
  4. Redis缓存雪崩、缓存穿透、热点Key解决方案和分析
  5. 【多线程】:Synchronized和ReentrantLock的对比
  6. 图像分类最新技术综述论文: 21种半监督、自监督和无监督学习方法一较高低
  7. Vim安装YouCompleteMe自动补全插件
  8. Android4.1MediaPlayer无缝播放
  9. 10分钟开始使用ICTCLAS Java版
  10. 爬虫实例十二 沪深证券股票全站数据爬取
  11. python语法简洁清晰、特色之一是强制用作为语句缩进_问道python之基础篇【一】 认识python...
  12. 计算机软件退税,软件企业2021增值税退税
  13. linux如何停止命令运行,linux的停止命令
  14. Hololens连接mysql_学校hololens开发项目:汽车发动机检修混合现实(MR)教学
  15. 在线制作SprinBoot的banner
  16. 销量惨淡,广告费ACOS飙升
  17. 与机房收费系统重相见
  18. 计算机仿真实验(部分)
  19. 计算平均分并输出低于平均分的学生成绩
  20. phantomjs设置截图大小

热门文章

  1. OpenGLES glUniform1i用法
  2. 让网站更新快照的方法
  3. 回顾丨李开复哥大毕业演讲:工程师的AI银河系漫游指南
  4. leveldb java实例_leveldb的使用
  5. 触摸开关芯片原理及功能特点
  6. Android 自定义模拟时钟控件
  7. 情况:Tomat Deployment 没有Artifact选择,这个时候不能Run,如下图。
  8. tomat startup.bat 日志乱码问题解决
  9. 软碟通制作自启动U盘并安装CentOS7系统详细教程
  10. Android_常驻进程(杀不死的进程)