Parcourir la source

updated20250425_xk

czyc il y a 3 jours
Parent
commit
cf7a6a0fef
3 fichiers modifiés avec 44 ajouts et 14 suppressions
  1. 14 0
      .gitignore
  2. 6 0
      OneKeyPush.sh
  3. 24 14
      bili_spider.py

+ 14 - 0
.gitignore

@@ -0,0 +1,14 @@
+*.mp3
+*.aac
+Audio
+Files
+*.mp4
+Video
+venv
+.idea
+.vscode
+.env
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local

+ 6 - 0
OneKeyPush.sh

@@ -0,0 +1,6 @@
+#!/bin/bash
+cd /d/pyp/xtsj_jkfw2
+current_date=$(date +%Y%m%d)
+git add .
+git commit -m "updated${current_date}_xk"
+git push origin master

+ 24 - 14
bili_spider.py

@@ -7,31 +7,29 @@ tips:错误记录
 3.音频和视频需要分开爬取及合成
 """
 
-# 请求模块
 import requests
-# 正则模块
 import re
-# json模块
 import json
-# 合并模块
 from moviepy.editor import *
-# html
 import html as h
+import os
 
-# TODO:修改url和cookie,爬不到最高画质的主要原因就是没有更新cookie
+# TODO:及时更新url和cookie
 
-# 设置
-url = 'https://www.bilibili.com/video/BV1J24y1p75G/?buvid=Y84DF68249678902447EA7D8C8D4E12E9DDC&from_spmid=search.search-result.0.0&is_story_h5=false&mid=VRgCQHIxfkYie40eSwgBqQ%3D%3D&plat_id=114&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=37ACC364-AFB3-49B2-AE6D-ECDDEE498D3B&share_source=WEIXIN&share_tag=s_i&timestamp=1737513904&unique_k=JBOVMFJ&up_id=690032002&vd_source=f6247aa12dae1ff1bce74ef0af381757'
+# 设置 请求url 手动创建文件夹
+url = 'https://www.bilibili.com/video/BV1SzmKY4ENo/?spm_id_from=333.1387.upload.video_card.click&vd_source=f6247aa12dae1ff1bce74ef0af381757'
 A_path = 'Audio/'
 V_path = 'Video/'
 
 # Synth_path = 'File/美少女/'
-Synth_path = 'File/'
+# Synth_path = 'File/电吉他/'
+Synth_path = 'Files/'
 
+# 需要完整url
 headers = {
     'Referer': url,
-    'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0",
-    'cookie': "buvid3=94F0FDAB-59F7-39B1-F805-CAA3E07060F661671infoc; b_nut=1729338061; _uuid=96637C82-967A-B8CA-D643-7621093B83AF862008infoc; buvid4=6F50A1B3-D6A1-87A5-1EF3-7AA396E5E35C62385-024101911-WqlszYIbsE%2BQ%2FFD68EQkXA%3D%3D; enable_web_push=DISABLE; LIVE_BUVID=AUTO8117293380854336; header_theme_version=CLOSE; rpdid=|(Y|RJYumR|0J'u~kmJJmJ)u; buvid_fp_plain=undefined; hit-dyn-v2=1; is-2022-channel=1; fingerprint=19cfe92f609986680aa1f2f4ffaa5e5d; PVID=1; DedeUserID=35990046; DedeUserID__ckMd5=bf34a8eab39f0c11; buvid_fp=19cfe92f609986680aa1f2f4ffaa5e5d; blackside_state=1; CURRENT_BLACKGAP=1; CURRENT_QUALITY=80; enable_feed_channel=DISABLE; _tea_utm_cache_20001731={%22creative_id%22:209057374}; CURRENT_FNVAL=4048; b_lsid=F36DB5DB_194D3DCC6B3; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3Mzg5ODA0NDksImlhdCI6MTczODcyMTE4OSwicGx0IjotMX0.lcIqSpCGaiPjRY0RAbCO8tOzHdF-VFiDMC-TWAiwIcE; bili_ticket_expires=1738980389; SESSDATA=de21e156%2C1754273250%2C4e042%2A21CjBcyUNyR_qeZY9ycuob2AZJmLM-9fFaPpMpNuKQmHWOenW-tp_d3fn8MLTp_YJhwzESVjFKbXVnLVdFS3d1djZyMU1zcE96UnNYWDVqazBrRk9sZUY4aVVETVY2THNpRVhOQVEzVEx2X2ZCTjdwdkpIazIzWThFTFk3SDV5NGpfLWxOWXQxTWVnIIEC; bili_jct=fdb20597a08eb5fe5869f1b5d45b85b6; sid=qk2ukeq5; bp_t_offset_35990046=1030289008506175488; home_feed_column=4; browser_resolution=1274-920"
+    'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Edg/133.0.0.0",
+    'cookie': "buvid3=94F0FDAB-59F7-39B1-F805-CAA3E07060F661671infoc; b_nut=1729338061; _uuid=96637C82-967A-B8CA-D643-7621093B83AF862008infoc; buvid4=6F50A1B3-D6A1-87A5-1EF3-7AA396E5E35C62385-024101911-WqlszYIbsE%2BQ%2FFD68EQkXA%3D%3D; enable_web_push=DISABLE; LIVE_BUVID=AUTO8117293380854336; header_theme_version=CLOSE; rpdid=|(Y|RJYumR|0J'u~kmJJmJ)u; buvid_fp_plain=undefined; hit-dyn-v2=1; is-2022-channel=1; PVID=1; DedeUserID=35990046; DedeUserID__ckMd5=bf34a8eab39f0c11; blackside_state=1; CURRENT_BLACKGAP=1; enable_feed_channel=ENABLE; _tea_utm_cache_20001731={%22creative_id%22:271609082}; fingerprint=d36c01c87471ab70718bc472c27c52a6; buvid_fp=d36c01c87471ab70718bc472c27c52a6; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NDU3MzE0OTUsImlhdCI6MTc0NTQ3MjIzNSwicGx0IjotMX0.mKHJFSP71sE3SetILNeShNBopd-nFD8IBLn7DRY40GY; bili_ticket_expires=1745731435; SESSDATA=af67ee36%2C1761024297%2C05147%2A41CjCFXD8lfOe6Y2Wytxly3_3CZxgGO8Wxuw2wiuxq6b-u0e6YmP-Bj-vplF3JFdZSKI8SVlBtQmNFQ3BNRmJCSzR4R0labVhZVzdTMEpucGtPSklVdlROWkpTWHp1OHBKRlQ5M2cyQ1gzMzdmZ2EwSUZxRFFKRUF2RUFZWXZBanY5Q0FSQS10M0lBIIEC; bili_jct=9ebb01c20099662180c2ec6a8ce2d34f; CURRENT_QUALITY=116; b_lsid=211010F35B_1966BEE3984; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; sid=892zno53; home_feed_column=4; browser_resolution=1281-754; bp_t_offset_35990046=1059705780682358784; CURRENT_FNVAL=4048"
 }
 
 # 主程序
@@ -42,7 +40,9 @@ html = response.text
 # 提取,合法化字符并显示 视频标题
 title = re.findall('title="(.*?)"', html)[0]
 title = h.unescape(title)
+title = title + "自拟"
 
+# 合法化标题
 if title:
     illegal_chars = fr'<||>\/:"*?'
     def remove_illegal_chars(title_ill):
@@ -53,7 +53,7 @@ if title:
 print("视频标题:",title)
 
 # 提取视频信息,提取音视频链接
-# # TODO:设置数值来声明文件品质,0默认最高
+# TODO:设置数值来声明文件品质,0默认最高
 info = re.findall('window.__playinfo__=(.*?)</script>', html)[0]
 json_data = json.loads(info)
 video_url = json_data['data']['dash']['video'][0]['baseUrl']
@@ -62,9 +62,11 @@ audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
 # 获取音视频内容并保存
 video_content = requests.get(url=video_url, headers=headers).content
 audio_content = requests.get(url=audio_url, headers=headers).content
+
 def SaveAudio():
     with open(A_path + title + '.mp3', mode='wb') as a:
         a.write(audio_content)
+
 def SaveVideo():
     with open(V_path + title + '.mp4', mode='wb') as v:
         v.write(video_content)
@@ -82,10 +84,18 @@ def ClipVideo():
     video_clip_with_audio = video_clip.set_audio(audio_clip)
     video_clip_with_audio.write_videofile(fr"{Synth_path}{title}{'.mp4'}", codec="libx264", audio_codec="aac")
 
+    try:
+        os.path.exists(video_path)
+        os.remove(video_path)
+        print(f'文件 {video_path} 已被删除')
+    except:
+        print(f'无 {video_path} 此文件')
+
+
 def main():
     SaveAudio()
-    # SaveVideo()
-    # ClipVideo()
+    SaveVideo()
+    ClipVideo()
 
 if __name__ == '__main__':
     main()