爱奇艺视频下载爬虫

    我先声明一下,这里也是用的外部VIP解析接口,并不是自己抓包获取真实链接,捡个漏学习一下

    我们去爱奇艺随便找个视频

image.png

    小编也尝试过去数据包里面找数据,但是无果,去网上寻找大神方案时也尽是这种调用接口实现的,小编也就去尝试了一下

image.png

    大家可以直接搜索VIP解析就能看到一些常用的解析网站,这里我使用的是VIP视频破解,这里算是比较之下相对稳定一点的了,这个网站只提供破解不提供接口,但是各个之间的原理性基本上都差不多,用这个做测试其他的基本上就不难理解了
image.png

    播放后打开检查查看就不难发现规律了,也可以打开几个链接(这里会直接下载到本地——ts文件,可直接播放)查看,基本上就是右边这一串,将整个视频分段截取,我们逐段获取拼接就可以了
image.png

    这里需要对数字做一下递增以及精确度处理,后者其实可以直接使用字符串方法处理,但是为了更明确一点我这里还是用函数进行了拼接,简单一点


def numFormat(num):
    if len(str(num)) == 1:
        num = '00'+ str(num)
    elif len(str(num)) == 2:
        num = '0' + str(num)
    return num

完整代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
@author: maya
@software: Pycharm
@file: aqiyi.py.py
@time: 2019/1/18 18:52
@desc:
'''
import requests
from lxml import etree


headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36'
}
def getHtml(url):
    try:
        r = requests.get(url, headers=headers)
        r.encoding = r.apparent_encoding
        return r.content
    except:
        return ""

def download(num = 0):
    print("********     开始下载    ********")
    while True:
        url = 'http://acfun.iqiyi-kuyun.com/20181213/HvdhFyz7/1000kb/hls/3A1XxdV7816{}.ts'.format(numFormat(num))
        print("开始下载第{}段:{}".format(num, url.split('/')[-1]))
        response = getHtml(url)
        title_url = 'https://www.iqiyi.com/v_19rre80q80.html#vfrm=2-4-0-1'
        title = etree.HTML(getHtml(title_url)).xpath('//span[@id="widget-videotitle"]/text()')[0]
        if response:
            with open(title+'.ts', 'ab') as f:
                f.write(requests.get(url, headers=headers).content)
            num += 1
        else:
            print("下载结束")
            break


def numFormat(num):
    if len(str(num)) == 1:
        num = '00'+ str(num)
    elif len(str(num)) == 2:
        num = '0' + str(num)
    return num

if __name__ == '__main__':
    download()

    但是也发现了一些问题,虽然下载下来可以播放了,代码这里一直运行下去之后可能会面临内存崩溃的问题,大家可以用多线程或者异步处理一下,而且视频本身也有点卡顿,可能对于追加过程没处理好,不知道是解析网站的问题还是代码本身的问题,之后再解决吧,先简单实现了,大家有好的意见可以留言

  • 更多爬虫代码详情查看Github

你可能感兴趣的:(爱奇艺视频下载爬虫)