国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下

這篇具有很好參考價(jià)值的文章主要介紹了用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言

嗨嘍~大家好呀,這里是魔王吶 ? ~!

用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下

今天我們分享一個(gè)用Python寫(xiě)下載視頻+彈幕+評(píng)論的代碼。

順便把這些寫(xiě)成GUI,把這些功能放到一起讓朋友用起來(lái)更方便~

用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下

環(huán)境介紹:

  • python 3.8

  • pycharm 2022專(zhuān)業(yè)版 >>> 免費(fèi)使用教程文末名片獲取

python資料、源碼、教程\福利皆: 點(diǎn)擊此處跳轉(zhuǎn)文末名片獲取

代碼實(shí)戰(zhàn)

主要代碼分為界面和采集部分

獲取數(shù)據(jù)

網(wǎng)址我屏蔽了,防止誤殺。

獲取視頻
import requests
import re
import json
from pprint import  pprint
import subprocess
import os

def Video(bv_id):
    url = f'https://www.***.com/video/{bv_id}'
    headers = {
        # 防盜鏈
        'referer': 'https://www.***.com/video/',
        # 瀏覽器基本身份標(biāo)識(shí) 表示瀏覽器
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    # 發(fā)送請(qǐng)求 ---> <Response [200]> 響應(yīng)對(duì)象,  200狀態(tài)碼 表示請(qǐng)求成功
    response = requests.get(url=url, headers=headers)

    # 獲取視頻標(biāo)題
    title = re.findall('"title":"(.*?)","pubdate"', response.text)[0].replace(' ', '')
    # 獲取視頻數(shù)據(jù)信息 前端標(biāo)簽兩個(gè)兩個(gè)一起
    html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]
    # 轉(zhuǎn)換數(shù)據(jù)類(lèi)型  字符串?dāng)?shù)據(jù)轉(zhuǎn)成json字典數(shù)據(jù)類(lèi)型
    json_data = json.loads(html_data)
    # print打印字典數(shù)據(jù), 輸出一行內(nèi)容 print(json_data)
    # pprint 打印字典數(shù)據(jù), 格式化輸出 展開(kāi)效果 pprint(json_data)
    # 字典數(shù)據(jù) B站數(shù)據(jù) 音頻和視頻分開(kāi)的 根據(jù)冒號(hào)左邊的內(nèi)容, 提取冒號(hào)右邊的內(nèi)容 鍵值對(duì)取值
    完整源碼、解答、教程皆+VX:qian97378獲取
    audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
    video_url = json_data['data']['dash']['video'][0]['baseUrl']
    # 403 Forbidden 沒(méi)有訪(fǎng)問(wèn)權(quán)限.....
    audio_content = requests.get(url=audio_url, headers=headers).content
    video_content = requests.get(url=video_url, headers=headers).content
    if not os.path.exists('video\\'):
        os.mkdir('video\\')
    with open('video\\' + title + '.mp3', mode='wb') as audio:
        audio.write(audio_content)
    with open('video\\' + title + '.mp4', mode='wb') as video:
        video.write(video_content)
    # 獲取音頻內(nèi)容以及視頻畫(huà)面內(nèi)容
    cmd = f"ffmpeg -i video\\{title}.mp4 -i video\\{title}.mp3 -c:v copy -c:a aac -strict experimental video\\{title}output.mp4"
    subprocess.run(cmd, shell=True)
    os.remove(f'video\\{title}.mp4')
    os.remove(f'video\\{title}.mp3')
    return title
采集彈幕
import requests
import re
import os

def get_response(html_url):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    response = requests.get(url=html_url, headers=headers)
    response.encoding = response.apparent_encoding
    return response


def get_Dm_url(bv_id):
    link = f'https://www.***.com/video/{bv_id}/'
    html_data = get_response(link).text
    Dm_url = re.findall('<a href="(.*?)"  class="btn btn-default" target="_blank">彈幕</a>', html_data)[0]
    title = re.findall('<input type="text" value="(.*?)"', html_data)[-1]
    return Dm_url, title


def get_Dm_content(Dm_url, title):
    html_data = get_response(Dm_url).text
    content_list = re.findall('<d p=".*?">(.*?)</d>', html_data)
    if not os.path.exists('彈幕\\'):
        os.mkdir('彈幕\\')
    for content in content_list:
        with open(f'彈幕\\{title}彈幕.txt', mode='a', encoding='utf-8') as f:
            f.write(content)
            f.write('\n')

def main(bv_id):
    Dm_url, title = get_Dm_url(bv_id)
    get_Dm_content(Dm_url, title)
采集評(píng)論
import requests
import re
import os


def get_response(html_url, params=None):
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    response = requests.get(url=html_url, params=params, headers=headers)
    return response


def get_oid(bv_id):
    link = f'https://www.***.com/video/{bv_id}/'
    html_data = get_response(link).text
    oid = re.findall('window.__INITIAL_STATE__={"aid":(\d+),', html_data)[0]
    title = re.findall('"title":"(.*?)","pubdate"', html_data)[0].replace(' ', '')
    return oid, title


def get_content(oid, page, title):
    content_url = 'https://***.com/x/v2/reply/main'
    # 完整源碼、解答、教程皆+VX:qian97378
    data = {
        'csrf': '6b0592355acbe9296460eab0c0a0b976',
        'mode': '3',
        'next': page,
        'oid': oid,
        'plat': '1',
        'type': '1',
    }
    json_data = get_response(content_url, data).json()
    content = '\n'.join([i['content']['message'] for i in json_data['data']['replies']])
    if not os.path.exists('評(píng)論\\'):
        os.mkdir('評(píng)論\\')
    with open(f'評(píng)論\\{title}評(píng)論.txt', mode='a', encoding='utf-8') as f:
        f.write(content)


def main(bv_id):
    oid, title = get_oid(bv_id)
    for page in range(1, 6):
        try:
            get_content(oid, page, title)
        except:
            pass

GUI部分

模塊

import tkinter as tk
from tkinter import ttk
import tkinter.messagebox
from Video import Video
import Barrage
import Comment

下載完成提示

def get_content():
    result = number_int_var.get()
    if result == '視頻':
        bv_id = bv_va.get()
        title = Video(bv_id)
        tk.messagebox.showinfo(title='溫馨提示', message=f'{title}下載完成')

    elif result == '彈幕':
        bv_id = bv_va.get()
        Barrage.main(bv_id)
        tk.messagebox.showinfo(title='溫馨提示', message=f'彈幕下載完成')

    elif result == '評(píng)論':
        bv_id = bv_va.get()
        Comment.main(bv_id)
        tk.messagebox.showinfo(title='溫馨提示', message=f'評(píng)論下載完成')

主界面部分

root = tk.Tk()
root.title('B站視頻下載軟件')
root.geometry('367x134+200+200')
#  透明度的值:0~1 也可以是小數(shù)點(diǎn),0:全透明;1:全不透明
root.attributes("-alpha", 0.9)
# -------------------------------------------------------
tk.Label(root, text='完整源碼、解答、教程皆+VX:qian97378', font=('黑體', 13), fg="red").grid(row=0, column=1)
# 我已經(jīng)把這個(gè)工具打包成了exe可執(zhí)行文件,直接加這個(gè)裙獲取。
# -------------------------------------------------------
text_label_1 = tk.Label(root, text='選擇: ', font=('黑體', 15))
text_label_1.grid(row=1, column=0, padx=5, pady=5)
# -------------------------------------------------------
number_int_var = tk.StringVar()
# 創(chuàng)建一個(gè)下拉列表
numberChosen = ttk.Combobox(root, textvariable=number_int_var, width=26)
# 設(shè)置下拉列表的值
numberChosen['values'] = ('視頻', '彈幕', '評(píng)論')
# 設(shè)置其在界面中出現(xiàn)的位置  column代表列   row 代表行
numberChosen.grid(row=1, column=1, padx=5, pady=5)
# 設(shè)置下拉列表默認(rèn)顯示的值,0為 numberChosen['values'] 的下標(biāo)值
numberChosen.current(0)
# -------------------------------------------------------
text_label = tk.Label(root, text='BV號(hào):', font=('黑體', 15))
text_label.grid(row=2, column=0, padx=5, pady=5)

bv_va = tk.Variable()
entry_1 = tk.Entry(root, font=('黑體', 15), textvariable=bv_va)
entry_1.grid(row=2, column=1)

Button_1 = tk.Button(root, text='下載', font=('黑體', 13), command=get_content)
Button_1.grid(row=2, column=2, padx=5, pady=5)
# -------------------------------------------------------
root.mainloop()

尾語(yǔ)

感謝你觀(guān)看我的文章吶~本次航班到這里就結(jié)束啦 ??

希望本篇文章有對(duì)你帶來(lái)幫助 ??,有學(xué)習(xí)到一點(diǎn)知識(shí)~

躲起來(lái)的星星??也在努力發(fā)光,你也要努力加油(讓我們一起努力叭)。

用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下

最后,宣傳一下呀~??????更多源碼、資料、素材、解答、交流皆點(diǎn)擊下方名片獲取呀????文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-493350.html

到了這里,關(guān)于用Python寫(xiě)了一個(gè)下載網(wǎng)站所有內(nèi)容的軟件,可見(jiàn)即可下的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何快速查找下載外文文獻(xiàn),哪個(gè)文獻(xiàn)下載網(wǎng)站好用

    如何快速查找下載外文文獻(xiàn),哪個(gè)文獻(xiàn)下載網(wǎng)站好用

    ??如何高效獲取到自己需要的外文文獻(xiàn),最好的辦法就是去文獻(xiàn)來(lái)源數(shù)據(jù)庫(kù)中查找,你需要的文獻(xiàn)來(lái)源數(shù)據(jù)庫(kù)有可能是Elsevier(sciencedirect)、也可能是Wiley Online Library、也有可能是IEEE等等,外文數(shù)據(jù)庫(kù)機(jī)構(gòu)太多了。這些外文文獻(xiàn)機(jī)構(gòu)大部分都需要賬號(hào)和權(quán)限才可以使用,有

    2023年04月22日
    瀏覽(31)
  • 代碼下載網(wǎng)站

    背景: 俗話(huà)說(shuō)“工欲善其事必先利其器”,作為一個(gè)具有多年經(jīng)驗(yàn)的計(jì)算機(jī)工程師,應(yīng)該善于總結(jié)自己的經(jīng)驗(yàn)才可以,這里記錄自己下代碼經(jīng)常用到的網(wǎng)站。 說(shuō)明: 我們?cè)谧鰧W(xué)術(shù)研究或者項(xiàng)目開(kāi)發(fā)的時(shí)候,最需要的就是參考代碼了,有時(shí)候,找到合適的參考代碼,會(huì)讓我們

    2024年02月10日
    瀏覽(26)
  • 【Python畢設(shè)|課設(shè)】基于Python Flask的上海美食信息與可視化宣傳網(wǎng)站項(xiàng)目-文末附下載方式以及往屆優(yōu)秀論文,項(xiàng)目其他均為抄襲

    【Python畢設(shè)|課設(shè)】基于Python Flask的上海美食信息與可視化宣傳網(wǎng)站項(xiàng)目-文末附下載方式以及往屆優(yōu)秀論文,項(xiàng)目其他均為抄襲

    隨著大數(shù)據(jù)和人工智能技術(shù)的迅速發(fā)展,我們?cè)O(shè)計(jì)并開(kāi)發(fā)了一款基于大數(shù)據(jù)的上海美食系統(tǒng)。該系統(tǒng)旨在為用戶(hù)提供全面而個(gè)性化的美食服務(wù)體驗(yàn)。在這個(gè)時(shí)代背景下,人們對(duì)美食的需求不僅停留在簡(jiǎn)單的滿(mǎn)足口腹之欲,更加注重個(gè)性化、健康、便捷的消費(fèi)體驗(yàn)。 系統(tǒng)的核心

    2024年02月11日
    瀏覽(24)
  • 國(guó)內(nèi)鏡像網(wǎng)站下載OpenCV

    OpenCV是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),廣泛用于圖像處理和計(jì)算機(jī)視覺(jué)領(lǐng)域。它提供了豐富的圖像處理算法和工具,使開(kāi)發(fā)者能夠輕松地處理圖像、視頻和攝像頭輸入。然而,由于眾所周知的原因,有時(shí)候在國(guó)內(nèi)直接從OpenCV官方網(wǎng)站下載可能會(huì)遇到速度慢或者無(wú)法連接的問(wèn)題。為

    2024年02月05日
    瀏覽(29)
  • 網(wǎng)站視頻鏈接自動(dòng)提取下載

    網(wǎng)站視頻鏈接自動(dòng)提取下載

    網(wǎng)站視頻鏈接怎么提取,批量視頻下載比較容易的方法不外乎通過(guò)復(fù)制網(wǎng)站的視頻鏈接,如果通過(guò)手動(dòng)對(duì)網(wǎng)站視頻鏈接復(fù)制粘貼就有點(diǎn)費(fèi)力了,網(wǎng)站視頻鏈接提取工具可以替代人工進(jìn)行網(wǎng)站視頻鏈接批量提取。 ? 網(wǎng)站視頻搜索引擎優(yōu)化該怎么進(jìn)行?視頻優(yōu)化和網(wǎng)站內(nèi)容優(yōu)化大

    2024年02月11日
    瀏覽(18)
  • 3D模型:免費(fèi)3D模型下載網(wǎng)站推薦

    3D模型:免費(fèi)3D模型下載網(wǎng)站推薦

    互聯(lián)網(wǎng)上打著“3D模型免費(fèi)下載”口號(hào)的網(wǎng)站屬實(shí)不少,但多數(shù)網(wǎng)站只提供少量普通模型免費(fèi)下載,而優(yōu)質(zhì)的模型則需要會(huì)員等付費(fèi)條件才能下載,真正免費(fèi)的網(wǎng)站少之又少,并且鮮為人知。 今天就整理一個(gè)免費(fèi)且好用的3D模型網(wǎng)站推薦給大家。 一、優(yōu)先推薦:GLTFS模型庫(kù)(

    2023年04月15日
    瀏覽(88)
  • 開(kāi)源源代碼收集下載網(wǎng)站匯總

    0.中國(guó)站長(zhǎng)(免費(fèi)):https://down.chinaz.com/ 1.51源碼:http://www.51aspx.com/ https://wwwtest.51aspx.com/ 2.源碼之家:http://www.codejia.com/ 3.源碼之家:http://www.zzvips.com/ 4.https://sourceforge.net/ 5.https://www.80zhan.com/ 6.洪越源代碼:http://www.softhy.net/ 8.代碼愛(ài)好者:http://www.codefans.com/ 24.源碼網(wǎng):http:

    2024年02月05日
    瀏覽(31)
  • 3D模型免費(fèi)下載網(wǎng)站大全

    價(jià)格: 免費(fèi)、付費(fèi) 格式: obj、max、3ds、c4d、skp、ma/mb、blend、dae、stl、fbx、gltf、glb、usdz 備注: 沒(méi)有源文件 價(jià)格: 免費(fèi)、付費(fèi) 格式: fbx、gltf、mtl、obj 備注: 可以下載源文件(c4d或者blender的),包括紋理的文件也可以下載,可以直接還原看到的效果圖 價(jià)格: 免費(fèi)、付費(fèi) 格

    2023年04月10日
    瀏覽(92)
  • 如何下載在線(xiàn)課程網(wǎng)站的視頻

    1 m3u8文件下載 這種最簡(jiǎn)單,直接見(jiàn) ffmpeg下載m3u8的視頻流文件_Box_CSDN的博客-CSDN博客_ffmpeg下載m3u8 2 騰訊視頻等 具體內(nèi)容見(jiàn):斥巨資研究了一下:如何下載騰訊課堂、小鵝通的付費(fèi)視頻 工具見(jiàn):騰訊課堂/小鵝通/m3u8 · 語(yǔ)雀 3 小X通 1.首先修改獲取的TS地址: https://encrypt-k-

    2023年04月24日
    瀏覽(35)
  • 強(qiáng)推!30個(gè)遙感數(shù)據(jù)下載網(wǎng)站整理分享

    1、中國(guó)遙感數(shù)據(jù)共享網(wǎng) ( http://rs.ceode.ac.cn/ ) 國(guó)內(nèi)存檔周期最長(zhǎng)的數(shù)據(jù)網(wǎng)站,對(duì)Landsat數(shù)據(jù)免費(fèi)共享,也可訂購(gòu)國(guó)外商業(yè)衛(wèi)星數(shù)據(jù)。注冊(cè)賬號(hào),通過(guò)審核就可直接下載。 2、中國(guó)資源衛(wèi)星應(yīng)用中心 ( https://data.cresda.cn/#/home ) 我國(guó)三大衛(wèi)星應(yīng)用中心之一,匯集國(guó)產(chǎn)衛(wèi)星數(shù)據(jù),

    2024年02月02日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包