成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python如何爬取視頻-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、大城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

這篇文章將為大家詳細(xì)講解有關(guān)Python如何爬取視頻,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1.完成這個(gè)程序代碼需要的Python模塊

需要的Python模塊有:requests模塊、bs4模塊、threading模塊、sys模塊、urllib模塊、os模塊
下面簡(jiǎn)要的介紹一下在這個(gè)程序中所使用的Python模塊的作用:
requests模塊:主要用于爬取網(wǎng)頁(yè)數(shù)據(jù);
bs4模塊:主要用于解析爬取得到的數(shù)據(jù)信息;
threading模塊:主要用于下載所有的.ts文件,提高下載速度;
sys模塊:如果程序中間出現(xiàn)錯(cuò)誤,終止整個(gè)程序代碼,使用sys.exit()方法;
urllib模塊:用于對(duì)用戶(hù)輸入的信息進(jìn)行編碼,主要使用urllib.parse.urlencode()方法;
os模塊:用于得到一個(gè)文件夾下面所有的文件(或者文件夾)(在這里是得到文件),使用os.listdir()方法。

2. 爬取視頻的鏈接、簡(jiǎn)介和名稱(chēng)

首先,我們要來(lái)到這個(gè)網(wǎng)址下面:YM影視
在搜索欄上面輸入一部視頻的名稱(chēng):小編在這里輸入的是:斗羅大陸,點(diǎn)擊搜索按鈕,來(lái)到下面的畫(huà)面:
Python如何爬取視頻

接下倆我們需要得到的內(nèi)容就是這些了,按電腦鍵盤(pán)的F12鍵,來(lái)到開(kāi)發(fā)者工具,可以發(fā)現(xiàn),這些內(nèi)容和視頻的鏈接在這個(gè)標(biāo)簽下面;

Python如何爬取視頻

實(shí)現(xiàn)代碼:兩個(gè)函數(shù)

def get_video_content():  # 得到匹配到的相關(guān)電影(或者電視?。┑拿Q(chēng)、鏈接、簡(jiǎn)介的列表
    video=input('請(qǐng)輸入你想看的電影或者電視劇名稱(chēng):')
    keyword=parse.urlencode({'k':video})[2:]   # 對(duì)輸入的名稱(chēng)進(jìn)行編碼
    url='http://ymystv.com/seacher-%s.html'%(keyword)
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3756.400 QQBrowser/10.5.4039.400'}
    response=requests.get(url=url,headers=headers)
    soup=BeautifulSoup(response.text,'lxml')
    list_1=soup.select('li.activeclearfix')
    # list_1列表里面有的內(nèi)容為 電影名稱(chēng)(或者電視劇名稱(chēng))、鏈接、簡(jiǎn)介等
    return list_1

def get_video_contents(list_1:list): # 進(jìn)一步處理得到的內(nèi)容(解析)
    list_url=[] # 視頻的鏈接
    listName=[] # 視頻名稱(chēng)
    for i in range(len(list_1)):
        url=list_1[i].select('div.detail>h4>a')[0]['href']
        url='http://ymystv.com/'+url[url.rfind('./')+2:]
        list_url.append(url)
        name=list_1[i].select('div.detail>h4>a')[0].text
        listName.append(name)
        print('【{}】-{}'.format(i+1,name)) # 電影或者電視劇的名稱(chēng)
        str1=list_1[i].select('div.detail>div.m-description')[0].text # 電影或者電視劇的簡(jiǎn)介

        # 對(duì)簡(jiǎn)介進(jìn)行字符串處理,并按照每行最多50個(gè)字符輸出
        str1='簡(jiǎn)介:'+str1[str1.find('簡(jiǎn)  介 :')+6:].strip() # 去空格
        for j in range(len(str1)//50+1):
            print('{}'.format(str1[j*50:(j+1)*50]))
        # print('{}'.format(str1)) # 沒(méi)處理的輸出結(jié)果
        print('*'+'--'*36)

    id=int(input('請(qǐng)輸入你想看的序號(hào):'))

    return list_url[id-1],listName[id-1]

運(yùn)行結(jié)果:
Python如何爬取視頻

之后就是選擇我們想看的視頻了,我選擇的是 龍王傳說(shuō) 也就是上面的序號(hào)6,雖然我沒(méi)有顯示出它,
點(diǎn)進(jìn)去之后,可以發(fā)現(xiàn),這里有許多集,現(xiàn)在需要的就是這些集數(shù)的鏈接了。
跟上面一樣,按電腦鍵盤(pán)F12鍵,來(lái)到開(kāi)發(fā)者模式,可以發(fā)現(xiàn),集數(shù)在這個(gè)標(biāo)簽下面;
Python如何爬取視頻

3.得到這個(gè)視頻的下載鏈接的json文件

這樣我們就可以得到這些視頻的播放鏈接了,那怎樣下載呢?我們點(diǎn)擊NetWork下面的XHR刷新一下,可以發(fā)現(xiàn),在這里有一個(gè)視頻接口(你懂的),只要將這個(gè)接口和剛才我們得到的一個(gè)視頻鏈接組合起來(lái),在瀏覽器上打開(kāi),就是一個(gè)json數(shù)據(jù),如下:
Python如何爬取視頻

我們只需將這個(gè)鏈接得到,并且得到里面使用的.ts文件的下載鏈接即可。

4.下載所有的.ts文件或者給出.mp4文件的下載鏈接

這里我運(yùn)用的多線(xiàn)程下載,不過(guò)并不是所有的.ts文件都能播放的,但是合并成.MP4之后,是可以的;如果得到是一個(gè).MP4文件的下載鏈接,我會(huì)將它直接輸出,因?yàn)橐粋€(gè).mp4文件比較大,運(yùn)用Python爬蟲(chóng)下載花費(fèi)的時(shí)間比較多,所以這還不如直接運(yùn)用瀏覽器下載。

5.合并所有.ts文件
import os

path=input('請(qǐng)輸入需要合并的絕對(duì)路徑:')
list_1=[path+'\{}.ts'.format(str(ij)) for ij in sorted([int(str_1[:str_1.find('.')]) for str_1 in os.listdir(path)])]
for str_2 in list_1:
    with open(file=str_2,mode='rb') as f:
        content=f.read()
    with open(file='./龍王傳說(shuō)_1.mp4',mode='ab') as fp:
        fp.write(content)

合并保存的那個(gè).MP4文件的名稱(chēng)需要我們自己手動(dòng)修改一下,當(dāng)然讀者也可以改動(dòng)一個(gè)代碼,不過(guò),我覺(jué)得我的這個(gè)合并還不算好,播放的MP4還是有一些問(wèn)題的,讀者如果有什么更好的合并方法,可以在下方留言,謝謝!

6.運(yùn)行結(jié)果和最終代碼

運(yùn)行結(jié)果:

運(yùn)用Python爬蟲(chóng)下載視頻

網(wǎng)頁(yè)名稱(chēng):Python如何爬取視頻-創(chuàng)新互聯(lián)
本文鏈接:http://jinyejixie.com/article20/ddsoco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶(hù)體驗(yàn)、網(wǎng)站設(shè)計(jì)、小程序開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)
盐山县| 涿鹿县| 仲巴县| 嘉禾县| 特克斯县| 桦甸市| 宣汉县| 涪陵区| 廉江市| 安塞县| 丰都县| 长宁区| 新野县| 绥芬河市| 临夏县| 清流县| 泽普县| 牡丹江市| 玛多县| 溧水县| 革吉县| 澎湖县| 阳原县| 上饶市| 天门市| 湘潭县| 肥城市| 阳春市| 宜川县| 白玉县| 晴隆县| 黔西县| 宝丰县| 长丰县| 南宫市| 正定县| 新和县| 广安市| 全椒县| 顺义区| 丹巴县|