爬取并下载视频

Posted 全栈测试笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬取并下载视频相关的知识,希望对你有一定的参考价值。

实现原理及思路请参考我的另外几篇爬虫实践博客

py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/uncleyong/p/6892688.html
py3+requests+json+xlwt,爬取拉勾招聘信息:http://www.cnblogs.com/uncleyong/p/6960044.html
py3+urllib+re,轻轻松松爬取双色球最近100期中奖号码:http://www.cnblogs.com/uncleyong/p/6958242.html

实现代码如下:

import urllib.request, re, requests

url_name = []
def get():
    hd = {\'User-Agent\':\'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\'}
    url = \'http://www.budejie.com/video/\'
    html = requests.get(url, headers=hd).text
    # print(html)
    url_content = re.compile(r\'(<div class="j-r-list-c">.*?</div>.*?</div>)\',re.S) 
    url_contents = re.findall(url_content,html)
    # print(url_contents)
    for i in url_contents: # 大盒子里面的html
        url_reg = r\'data-mp4="(.*?)"\'
        url_item = re.findall(url_reg,i) 
        # print(type(url_items)) # <class \'list\'>
        # print(url_item)
        if url_item:
            name_reg = re.compile(r\'<a href="/detail-.{8}?.html">(.*?)</a>\',re.S) # .{8}?匹配8位数字
            name_item = re.findall(name_reg,i) # findall返回的是一个列表
            # print(type(name_items)) # <class \'list\'>
            # print(name_items)
            for i,k in zip(name_item,url_item):
                url_name.append([i,k]) # 将列表添加到列表中,其实,也可以将元组存入列表,url_name.append((i,k))
                # print(url_name)
                # print(i,k)
    for i in url_name:
        print(\'正在下载>>>>>  \'+i[0]+\':\'+i[1])
        # 每个元素的i[0]是名称,i[1]是视频url
        urllib.request.urlretrieve(i[1],\'video/%s.mp4\'%(i[0])) # video\\\\%s

if __name__ == \'__main__\':
    get()

 

以上是关于爬取并下载视频的主要内容,如果未能解决你的问题,请参考以下文章

Python 爬虫实战: 爬取并下载CSDN文章

java爬取并下载酷狗TOP500歌曲

Python爬虫实战,Scrapy实战,爬取并简单分析知网中国专利数据

我用Python爬虫爬取并分析了C站前100用户最高访问的2000篇文章

进程池爬取并存入mongodb

爬虫 - 博客爬取并入库