黑帽联盟

 找回密码
 会员注册
查看: 1611|回复: 0
打印 上一主题 下一主题

[其它] 批量抓取网页上的视频 python程序

[复制链接]

895

主题

38

听众

3329

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 22:31
  • 签到天数: 1652 天

    [LV.Master]伴坛终老

    爬虫小程序(批量抓取网页上的视频)
    内容如下:

    一个网站下的源代码:

    右键查看源代码,发现提供下载的视频格式都是“.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,这样下载完一个视频后就会输出一行提示

    运行效果如下:

    python批量抓取


    视频抓取


    代码如下:(python2.6)
    游客,如果您要查看本帖隐藏内容请回复
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部