美文网首页DD收藏文章
python爬取小视频——梨视频

python爬取小视频——梨视频

作者: KyleLou | 来源:发表于2018-10-20 20:37 被阅读47次

    爬取梨视频小视频
    网址:http://www.pearvideo.com/
    工具:python3,pycharm,火狐浏览器(或谷歌浏览器)
    模块:requests,re,os, urllib.request,(如需控制爬取速度,可加入time模块。)

    思路:

    分析网站
    获取网页源代码
    获取视频ID
    拼接URL地址
    获取视频播放地址
    下载视频
    本文以下载科技类视频为例,所以请求的网址为http://www.pearvideo.com/category_8
    如果想下载体育类视频,则更改请求网址:

    分析:
    首先分析网站,打开开发者工具(F12)
    用查看器选中一个视频,我们可以发现视频的ID信息。红框内为视频的id。

    打开后,恰好是我们寻找的id。

    我们检查网页源代码,查看id,利用正则表达式获取id。reg='<a href="(.*?)" class="vervideo-lilink actplay">'

    获取id后,我们获取视频播放地址。在此使用查看器,查看视频,我们发现了一个视频地址。复制后,在新的标签页中打开,正是我们想要获取的视频。

    但是我们在网页源代码中,并没有找到这个url地址。在控制台中能找到,但是网页源代码中没有,这是因为video标签是通过js加载的。

    我们还是获取播放视频页面的网页源代码,使用正则表达式reg='ldUrl="",srcUrl="(.*?)"',进行匹配,可以在js中匹配到播放地址。我们还需要获取视频的标题。

    正则表达式:reg='<h1 class="video-tt">(.*?)</h1>'

    下载视频:创建文件夹,存取视频if path not in os.listdir(): os.mkdir(path)
    下载urllib.request.urlretrieve

    完整代码:有注释

    import requests
    import re
    import os
    import urllib.request

    下载视频

    def download():
    #获取网页源代码
    url="http://www.pearvideo.com/category_8"
    #模拟浏览器去请求服务器
    headers={
    'User-Agent':'Mozilla / 5.0(Windows NT 10.0;WOW64;rv:62.0) Gecko / 20100101Firefox / 62.0',
    }
    #状态码
    html=requests.get(url,headers=headers)
    #print(html.text)

    #获取视频id   .*?匹配所有
    reg='<a href="(.*?)" class="vervideo-lilink actplay">'
    video_id=re.findall(reg,html.text)
    #print(video_id)
    
    #拼接URL地址
    video_url=[]#接收拼接好的url
    starturl='http://www.pearvideo.com'+''
    for vid in video_id:
        newurl=starturl+'/'+vid
        #print(newurl)
        video_url.append(newurl)
    
    
    
        #获取视频播放地址
        for purl in video_url:
            html=requests.get(purl,headers=headers)
            reg='ldUrl="",srcUrl="(.*?)"'
            playurl=re.findall(reg,html.text)
            #print(playurl)
            #获取视频标题
            reg='<h1 class="video-tt">(.*?)</h1>'
            video_name=re.findall(reg,html.text)
            #print(video_name[0])
    
            #下载视频
            print('正在下载视频%s'%video_name)
    
            path='video'
            if path not in os.listdir():
                os.mkdir(path)
            filepath=path+"/%s"%video_name[0]+'.mp4'
            #下载
            urllib.request.urlretrieve(playurl[0],filepath)
    

    download()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    运行结果,获取到视频.


    作者:乐亦亦乐
    来源:CSDN
    原文:https://blog.csdn.net/qq_41251963/article/details/82949553
    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

        本文标题:python爬取小视频——梨视频

        本文链接:https://www.haomeiwen.com/subject/kgomzftx.html