愛奇藝視頻下載爬蟲

    我先聲明一下,這裏也是用的外部VIP解析接口,並不是自己抓包獲取真實鏈接,撿個漏學習一下

    我們去愛奇藝隨便找個視頻


    小編也嘗試過去數據包裏面找數據,但是無果,去網上尋找大神方案時也盡是這種調用接口實現的,小編也就去嘗試了一下


    大家可以直接搜索VIP解析就能看到一些常用的解析網站,這裏我使用的是VIP視頻破解,這裏算是比較之下相對穩定一點的了,這個網站只提供破解不提供接口,但是各個之間的原理性基本上都差不多,用這個做測試其他的基本上就不難理解了

    播放後打開檢查查看就不難發現規律了,也可以打開幾個鏈接(這裏會直接下載到本地——ts文件,可直接播放)查看,基本上就是右邊這一串,將整個視頻分段截取,我們逐段獲取拼接就可以了

    這裏需要對數字做一下遞增以及精確度處理,後者其實可以直接使用字符串方法處理,但是爲了更明確一點我這裏還是用函數進行了拼接,簡單一點


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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章