最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python爬蟲實(shí)戰(zhàn)之虎牙視頻爬取附源碼

 更新時(shí)間:2021年10月15日 09:09:46   作者:松鼠愛吃餅干  
讀萬卷書不如行萬里路,學(xué)的扎不扎實(shí)要通過實(shí)戰(zhàn)才能看出來,本篇文章手把手帶你爬取虎牙短視頻數(shù)據(jù),大家可以在實(shí)戰(zhàn)過程中查缺補(bǔ)漏,加深學(xué)習(xí)

知識點(diǎn)

  • 爬蟲基本流程
  • re正則表達(dá)式簡單使用
  • requests
  • json數(shù)據(jù)解析方法
  • 視頻數(shù)據(jù)保存

開發(fā)環(huán)境

  • Python 3.8
  • Pycharm

爬蟲基本思路流程: (重點(diǎn)) [無論任何網(wǎng)站 任何數(shù)據(jù)內(nèi)容 都是按照這個(gè)流程去分析]

1.確定需求 (爬取的內(nèi)容是什么東西?)

  • 都通過開發(fā)者工具進(jìn)行抓包分析
  • 分析視頻播放url地址 是可以從哪里獲取到
  • 如果我們想要的數(shù)據(jù)內(nèi)容 是 音頻數(shù)據(jù)/視頻數(shù)據(jù) (media)
  • 雖然說知道視頻播放地址, 但是我們還需要知道這個(gè)播放地址 可以從什么地方獲取

2.發(fā)送請求, 用python代碼模擬瀏覽器對于目標(biāo)地址發(fā)送請求

3.獲取數(shù)據(jù), 獲取服務(wù)器給我們返回的數(shù)據(jù)內(nèi)容

4.解析數(shù)據(jù), 提取我們想要數(shù)據(jù)內(nèi)容, 視頻標(biāo)題/視頻url地址

5.保存數(shù)據(jù)

【付費(fèi)VIP完整版】只要看了就能學(xué)會(huì)的教程,80集Python基礎(chǔ)入門視頻教學(xué)

點(diǎn)這里即可免費(fèi)在線觀看

分析目標(biāo)url

先打開一個(gè)視頻,查看id

請?zhí)砑訄D片描述

打開開發(fā)者工具,查找

拿到目標(biāo)url

開始代碼

最開始還是線導(dǎo)入所需模塊

import requests # 數(shù)據(jù)請求模塊 pip install requests (第三方模塊)
import pprint # 格式化輸出模塊 內(nèi)置模塊 不需要安裝
import re # 正則表達(dá)式
import json

數(shù)據(jù)請求

def get_response(html_url):
    # 用python代碼模擬瀏覽器
    # headers 把python代碼進(jìn)行偽裝
    # user-agent 瀏覽器的基本標(biāo)識
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
    }
    # 用代碼直接獲取的 一般大多數(shù)都是直接 cookie
    response = requests.get(url=html_url, headers=headers)
    return response

獲取視頻標(biāo)題以及url地址

def get_video_info(video_id):
    html_url = f'https://liveapi.huya.com/moment/getMomentContent?videoId={video_id}&uid=&_=1634127164373'
    response = get_response(html_url)
    title = response.json()['data']['moment']['title'] # 視頻標(biāo)題
    video_url = response.json()['data']['moment']['videoInfo']['definitions'][0]['url']
    video_info = [title, video_url]
    return video_info

獲取視頻id

def get_video_id(html_url):
    html_data = get_response(html_url).text
    result = re.findall('<script> window.HNF_GLOBAL_INIT = (.*?) </script>', html_data)[0]
    # 需要把獲取的字符串?dāng)?shù)據(jù), 轉(zhuǎn)成json字典數(shù)據(jù)
    json_data = json.loads(result)['videoData']['videoDataList']['value']
    # json_data 列表 里面元素是字典
    # print(json_data)
    video_ids = [i['vid'] for i in json_data]  # 列表推導(dǎo)式
    # lis = []
    # for i in json_data:
    #     lis.append(i['vid'])
    # print(video_ids)
    # print(type(json_data))
    return video_ids

# 目光所至 我皆可爬
def main(html):
    video_ids = get_video_id(html_url=html)
    for video_id in video_ids:
        video_info = get_video_info(video_id)
        save(video_info[0], video_info[1])

保存數(shù)據(jù)

def save(title, video_url):
    # 保存數(shù)據(jù), 也是還需要對于播放地址發(fā)送請求的
    # response.content 獲取響應(yīng)的二進(jìn)制數(shù)據(jù)
    video_content = get_response(html_url=video_url).content
    new_title = re.sub(r'[\/:*?"<>|]', '_', title)
    # 'video\\' + title + '.mp4' 文件夾路徑以及文件名字 mode 保存方式 wb二進(jìn)制保存方式
    with open('video\\' + new_title + '.mp4', mode='wb') as f:
        f.write(video_content)
        print('保存成功: ', title)

調(diào)用函數(shù)

if __name__ == '__main__':
    # get_video_info('589462235')
    video_info = get_video_info('589462235')
    save(video_info[0], video_info[1])
    for page in range(1, 6):
        print(f'正在爬取第{page}頁的數(shù)據(jù)內(nèi)容')
        # python基礎(chǔ)入門課程 第一節(jié)課 講解的知識點(diǎn) 字符串格式化方法
        url = f'https://v.huya.com/g/all?set_id=31&order=hot&page={page}'
        main(url)

運(yùn)行代碼,得到數(shù)據(jù)

到此這篇關(guān)于Python爬蟲實(shí)戰(zhàn)之虎牙視頻爬取附源碼的文章就介紹到這了,更多相關(guān)Python 爬取虎牙視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用python加密自己的密碼

    使用python加密自己的密碼

    本文給大家分享的是使用python加密自己的密碼的思路和代碼,非常的簡單實(shí)用,有需要的小伙伴可以參考下。
    2015-08-08
  • Python json轉(zhuǎn)字典字符方法實(shí)例解析

    Python json轉(zhuǎn)字典字符方法實(shí)例解析

    這篇文章主要介紹了Python json轉(zhuǎn)字典字符代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python BeautifulSoup庫的高級特性詳解

    Python BeautifulSoup庫的高級特性詳解

    在Python的網(wǎng)絡(luò)爬蟲中,BeautifulSoup庫是一個(gè)強(qiáng)大的工具,用于解析HTML和XML文檔并提取其中的數(shù)據(jù),在這篇文章中,我們將深入研究BeautifulSoup的一些高級特性,讓您的爬蟲工作更高效,更強(qiáng)大,需要的朋友可以參考下
    2023-08-08
  • 關(guān)于Django顯示時(shí)間你應(yīng)該知道的一些問題

    關(guān)于Django顯示時(shí)間你應(yīng)該知道的一些問題

    將Django項(xiàng)目部署到Linux系統(tǒng)上進(jìn)行測試時(shí),發(fā)現(xiàn)操作記錄的時(shí)間與服務(wù)器的時(shí)間不一致,相差13個(gè)小時(shí)。這主要是因?yàn)闀r(shí)區(qū)的問題,下面這篇文章主要總結(jié)介紹了關(guān)于Django顯示時(shí)間你應(yīng)該知道的一些問題,需要的朋友可以參考下。
    2017-12-12
  • python MySQLdb使用教程詳解

    python MySQLdb使用教程詳解

    本文主要內(nèi)容python MySQLdb數(shù)據(jù)庫批量插入insert,更新update的相關(guān)知識,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-03-03
  • 使用Python開發(fā)游戲運(yùn)行腳本成功調(diào)用大漠插件

    使用Python開發(fā)游戲運(yùn)行腳本成功調(diào)用大漠插件

    閑來無事,想通過python來實(shí)現(xiàn)一些簡單的游戲輔助腳本,而游戲輔助腳本的主要原理就是通過程序來查找游戲程序窗口,模擬實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊和鍵盤按鍵等事件來實(shí)現(xiàn)游戲輔助的,對Python開發(fā)游戲運(yùn)行腳本相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • 使用Python實(shí)現(xiàn)音頻降噪功能

    使用Python實(shí)現(xiàn)音頻降噪功能

    在音頻處理領(lǐng)域,背景噪聲是一個(gè)常見的問題,為了提高音頻的質(zhì)量,我們需要對音頻進(jìn)行降噪處理,本文將介紹如何使用 Python 實(shí)現(xiàn)音頻降噪,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-11-11
  • 淺談tensorflow語義分割api的使用(deeplab訓(xùn)練cityscapes)

    淺談tensorflow語義分割api的使用(deeplab訓(xùn)練cityscapes)

    這篇文章主要介紹了淺談tensorflow語義分割api的使用(deeplab訓(xùn)練cityscapes),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 無監(jiān)督生成模型的示例

    python 無監(jiān)督生成模型的示例

    無監(jiān)督生成模型在機(jī)器學(xué)習(xí)中扮演著重要角色,特別是當(dāng)我們在沒有標(biāo)簽數(shù)據(jù)的情況下想要生成新的樣本或理解數(shù)據(jù)的內(nèi)在結(jié)構(gòu)時(shí),這篇文章主要介紹了python 無監(jiān)督生成模型的示例,需要的朋友可以參考下
    2024-07-07
  • OpenCV(python)版實(shí)現(xiàn)文本分割之水平投影法

    OpenCV(python)版實(shí)現(xiàn)文本分割之水平投影法

    本文主要介紹了OpenCV(python)版實(shí)現(xiàn)文本分割之水平投影法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

钟山县| 湘潭县| 惠水县| 九龙县| 滁州市| 乌兰察布市| 汉川市| 宁河县| 双辽市| 景德镇市| 荥经县| 加查县| 阿鲁科尔沁旗| 司法| 顺义区| 礼泉县| 兴海县| 江孜县| 闸北区| 潞城市| 甘肃省| 来宾市| 左云县| 清远市| 扬中市| 改则县| 锡林浩特市| 潼关县| 股票| 绥宁县| 墨江| 资源县| 巴彦县| 兴仁县| 呼玛县| 天柱县| 仁布县| 鲜城| 大宁县| 连江县| 田阳县|