【Python爬虫】批量抓取网页上的视频

1、为何学python

编程语言方面,本科这几年一直都用C/C++,因为研究生方向与机器学习相关,所以最近大部分时间在学机器学习,看了《机器学习实战》这本书,里面的实例都是用python来写,并且目前来说,对机器学习算法支持得比较多的语言是python,matlab/octave当然也很适合用于机器学习,但是毕竟是学术工具,速度等方面肯定不如python,工业开发还是用python、c++。

总之对于学习机器学习,python以及NumPy库要熟悉。

所以这两天决定学一下python,就找了个评价还不错的公开课看了两天,边看边敲代码,感觉python确实是一门很简单的语言,只要有点C++、C、Java或者其他语言基础,一两天完全可以入门python。当然入门简单,精通难,还是要靠多练。

下面简单的小爬虫程序是看完视频后写的,算是第一个小程序

2、爬虫小程序

因为刚好要看Andrew Ng的机器学习课程,所以就顺便用这个爬虫程序抓取了网页上的视频,网页地址:

http://v.163.com/special/opencourse/machinelearning.html

右键查看源代码,发现提供下载的视频格式都是“.mp4”后缀:

网页上提供下载的视频在源代码中都是这种式:href=‘http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4

据此可以写出所要匹配的正则表达式:r=r" href=‘(http.*\.mp4)‘ "

接下来的任务就是获取网页源代码,然后在源代码里面寻找所有匹配正则r的字符串。

抓取源代码可以利用urllib里的urlopen()方法:page=urllib.urlopen(url),返回的是一个页面的对象page,通过html=page.read()可以将页面源代码保存到html变量中。

源代码抓下来之后,就要寻找并获取里面所有的:

href=‘http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4

可以通过正则r,以及正则模块re里的findall方法来获取:mp4List=re.findall(re_mp4,html)

findall返回的是列表,列表里的元素就是视频的地址了,比如下面就是一个视频地址:             http://mov.bn.netease.com/mobilev/2011/9/8/V/S7CTIQ98V.mp4

视频的地址抓取下来后,利用模块urllib里的urlretrieve()方法通过视频地址将视频下载下来:   urllib.urlretrieve(mp4url),mp4url是mp4List里的元素。另外还可以给下载下来的视频命名:urllib.urlretrieve(mp4url,"%s.mp4"
%filename),这个filename是个变量,当下载完一个视频后,它就加1,这样所有视频被命名为1.mp4,2.mp4,3.mp4...........

为了便于查看下载进度,可以在urllib.urlretrieve(mp4url,"%s.mp4" %filename)后面加一句:

print  ‘file "%s.mp4" done‘ %filename,这样下载完一个视频后就会输出一行提示

运行效果如下:

代码如下:(python2.6)

#!/usr/bin/python
import re
import urllib
def getHtml(url):
	page=urllib.urlopen(url)
	html=page.read()
	return html
def getMp4(html):
	r=r"href='(http.*\.mp4)'"
	re_mp4=re.compile(r)
	mp4List=re.findall(re_mp4,html)
	filename=1
	for mp4url in mp4List:
		urllib.urlretrieve(mp4url,"%s.mp4" %filename)
		print  'file "%s.mp4" done' %filename
		filename+=1
url=raw_input("please input the source url:")
html=getHtml(url)
getMp4(html)
时间: 2024-10-10 14:53:30

【Python爬虫】批量抓取网页上的视频的相关文章

Python爬虫实现抓取网页图片

在逛贴吧的时候看见贴吧里面漂亮的图片,或有漂亮妹纸的图片,是不是想保存下来? 但是有的网页的图片比较多,一个个保存下来比较麻烦. 最近在学Python,所以用Python来抓取网页内容还是比较方便的: 所以就尝试了一下 ------code------- #coding=utf-8 import re    import urllib   //导入模块     def gethtml(url):   //自定义函数,传参获取网页内容    page=urllib.urlopen(url)    

Python爬虫实战---抓取图书馆借阅信息

原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约,影响日后借书,而自己又懒得总是登录到学校图书馆借阅系统查看,于是就打算写一个爬虫来抓取自己的借阅信息,把每本书的应还日期给爬下来,并写入txt文件,这样每次忘了就可以打开该txt文件查看,每次借阅信息改变了,只要再重新运行一遍该程序,原txt文件就会被新文件覆盖,里面的内容得到更新. 用到的技术: Python版本是 2.7 ,同时用到了ur

python多线程实现抓取网页

Python实现抓取网页 下面的Python抓取网页的程序比较初级,只能抓取第一页的url所属的页面,只要预定URL足够多,保证你抓取的网页是无限级别的哈,下面是代码: ##coding:utf-8 ''' 无限抓取网页 @author wangbingyu @date 2014-06-26 ''' import sys,urllib,re,thread,time,threading ''' 创建下载线程类 ''' class download(threading.Thread): def __

Python -- 网络编程 -- 抓取网页图片 -- 图虫网

字符串(str)编码成字节码(bytes),字节码解码为字符串 获取当前环境编码:sys.stdin.encoding url编码urllib.parse.quote() url解码urllib.parse.unquote() 列表去重:pages = list(set(pages)) 创建文件夹(可多级创建):os.makedirs(folder)  os.mkdir()只能单级创建 首先分析网页(图虫网)的URL规律: 根网页地址形如: http://tuchong.com/tags/人像/

使用HtmlAgilityPack批量抓取网页数据

[转]使用HtmlAgilityPack批量抓取网页数据 相关软件点击下载 登录的处理.因为有些网页数据需要登陆后才能提取.这里要使用ieHTTPHeaders来提取登录时的提交信息. 抓取网页  HtmlAgilityPack.HtmlDocument htmlDoc;            if (!string.IsNullOrEmpty(登录URL))            {                htmlDoc = htmlWeb.Load(登录URL, 提交的用户验证信息,

python学习笔记-抓取网页图片脚本

初学者一枚,代码都是模仿网上的.亲测可用~ 运行脚本的前提是本机安装了httplib2模块 #!/usr/bin/python import os import re import string import urllib #author:reed #date:2014-05-14 def GetWebPictures(): url=raw_input('please input the website you want to download:') imgcontent=urllib.urlo

python爬虫如何抓取代理服务器

一年前突然有个灵感,想搞个强大的网盘搜索引擎,但由于大学本科学习软件工程偏嵌入式方向,web方面的能力有点弱,不会jsp,不懂html,好久没有玩过sql,但就是趁着年轻人的这股不妥协的劲儿,硬是把以前没有学习的全部给学了一遍,现在感觉web原来也就那么回事.好了,废话就不说了,看到本文的读者,可以先看看我做的东西: 去转盘网:www.quzhuanpan.com ok搜搜:www.oksousou.com(这个是磁力,顺便拿出来给大伙观赏) 言归正传,由于我要爬取百度网盘,而度娘你懂的的搞爬虫

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿"德州扒鸡"做为参考目标吧~!如果想抓其他商品的话,自行更换目标即可!打开淘宝,搜索目标,随便点击一个商品进入,在点击累计评论,打开F12开发者工具--网络,先清除现有的所有内容,然后点击下一页评论,在弹出的内容中查找文件中开头为list_detail_rate.htm的html类型,如下图所示 这个html中就含

Python爬虫实现抓取腾讯视频所有电影【实战必学】

2019-06-27 23:51:51 阅读数 407  收藏 更多 分类专栏: python爬虫 前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者: Python新手学习之家 用python实现的抓取腾讯视频所有电影的爬虫 # -*- coding: utf-8 -*-   import re   import urllib2   from bs4 import BeautifulSoup   import stri