Python 爬虫 爬取视频

之前有朋友想让我帮他个忙想要一些视频,我就去网上看了一下,由于以前没有接触过python这个语言所以只能在网上搜索了一下。本篇文章转自 http://blog.csdn.net/Martin201609/article/details/53284625  稍作修改 本人实践在 http://www.budejie.com/video 网站可用



#import urllib
import os




#reload(sys)
#sys.setdefaultencoding("utf-8")


#a = 1
url_name = [];
def get(pageindex):
    ###  url : 想要爬取的网站 str(pageindex):爬取网站的页码
    url = 'http://www.budejie.com/video/' + str(pageindex);
    #var1.set('已经获取到第%s页的视频视频'%(a))
    print (url);




    ### 设置网站访问的请求头信息
    #有些网页,比如登录的。如果你不是从浏览器发起的起求,这就不会给你响应,
    #这时我们就需要自己来写报头。
    #然后再发给网页的服务器,这时它就以为你就是一个正常的浏览器。
    #从而就可以爬了!
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}  
    req = urllib.request.Request(url, headers=headers)
    #print(req)


    #with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,
    #释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
    with urllib.request.urlopen(req) as ss:
        # read()设置读取文件的大小 如果不写 默认为从文件指针位置到文件结尾
        # 这里设置为30000 为读取文件的大小
      html=  ss.read(30000);




    # 设置从页面中获取的视频的连接的正则表达式
    url_reg = rb'data-mp4="(.*?)"';
    # 通过正则表达式从网页中获得视频链接
    url_items = re.findall(url_reg, html);
    #print(url_items)
    
    name_reg = re.compile(rb'<div class="j-r-list-c-desc".*?<a href=".*?>(.*?)</a>.*?</div>', re.S);
# 锁定视频所在的div 
    name_items = re.findall(name_reg, html);
    print(name_items)
    for i, k in zip(name_items, url_items):
       
        url_name.append([i, k]);
        


#传入文件名和video地址
def saveVideo(filename,videoUrl):
    print('ssssss=',str(filename));
    print ('Saving : %s ...'%filename);
    urllib.request.urlretrieve(videoUrl.decode('utf-8'),'D:\\video\\'+str(filename)+'.mp4');
####main exec ####
for pageindex in range(1,3):
    get(pageindex);




for index,item in enumerate(url_name):


    saveVideo(index,item[1])
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值