前言
嗨嘍!大家好呀
第三方模塊:
- requests >>> pip install requests
模塊安裝問題:
如果安裝python第三方模塊:
- win + R 輸入 cmd 點擊確定, 輸入安裝命令 pip install 模塊名 (pip install requests) 回車
-
在pycharm中點擊Terminal(終端) 輸入安裝命令

如何配置pycharm里面的python解釋器?
- 選擇file(檔案) >>> setting(設定) >>> Project(專案) >>> python interpreter(python解釋器)
- 點擊齒輪, 選擇add
- 添加python安裝路徑
pycharm如何安裝插件?
- 選擇file(檔案) >>> setting(設定) >>> Plugins(插件)
- 點擊 Marketplace 輸入想要安裝的插件名字 比如:翻譯插件 輸入 translation / 漢化插件 輸入 Chinese
- 選擇相應的插件點擊 install(安裝) 即可
- 安裝成功之后 是會彈出 重啟pycharm的選項 點擊確定, 重啟即可生效
Python: 編程語言()
用計算機語言(0 1): 用來跟計算機進行互動的語言
翻譯 英文單詞翻譯成 0 或者 1 python 3.8
實作一系列操作
代碼編輯器: pycharm 2021.2
解答、資料、原始碼點擊領取~

Python: 工具
內置模塊
第三方模塊
環境介紹:
- python 3.8 解釋器
- pycharm 編輯器
- ffmpeg 音視頻合成軟體
抓資料 (當前視頻鏈接,音頻鏈接)
Request URL: https://www.ixigua.com/7057054074503430693
Request Method: GET
代碼實作:
- 發送請求 (訪問網站)
- 獲取資料
- 決議資料 (base64解碼)
- 保存資料 (視頻 音頻)
- 音視頻合并

代碼
匯入模塊
import requests # 發送請求 第三方 import re # 內置模塊 import json import base64 import subprocess import os
加一個偽裝
headers = {
'cookie': 'MONITOR_WEB_ID=c27b9f4a-4917-4256-be93-e948308467e3; ttcid=0cbb8baca16443e8b2320dfcb0ebd3ab24; __gads=ID=b750d35ceb3b300e-22f59bfba5d0002a:T=1645008733:RT=1645008733:S=ALNI_MZSPYii3eywVYfjuGdExhE-Dw3tLw; BD_REF=1; support_webp=true; support_avif=true; _tea_utm_cache_1300=undefined; s_v_web_id=verify_l2kdgr6l_ZlYcneu1_fb24_4lQM_A1cp_pBZKlKxvJKzJ; passport_csrf_token=7e1f1777c680a1dd9f163d6916212e62; passport_csrf_token_default=7e1f1777c680a1dd9f163d6916212e62; sid_guard=880626da6250e5535bcc3b35a5804a5c%7C1651232961%7C3023999%7CFri%2C+03-Jun-2022+11%3A49%3A20+GMT; uid_tt=d87f79c88dc25ca91c644549863616c8; uid_tt_ss=d87f79c88dc25ca91c644549863616c8; sid_tt=880626da6250e5535bcc3b35a5804a5c; sessionid=880626da6250e5535bcc3b35a5804a5c; sessionid_ss=880626da6250e5535bcc3b35a5804a5c; sid_ucp_v1=1.0.0-KGE4ZTdhODI0MjQ3Y2IyY2Y2ZmQwYjkzYTFhNDljYjdjYjdhM2U3OTgKFAjo5IrYFxDBoa-TBhgYIAw4CEAFGgJsZiIgODgwNjI2ZGE2MjUwZTU1MzViY2MzYjM1YTU4MDRhNWM; ssid_ucp_v1=1.0.0-KGE4ZTdhODI0MjQ3Y2IyY2Y2ZmQwYjkzYTFhNDljYjdjYjdhM2U3OTgKFAjo5IrYFxDBoa-TBhgYIAw4CEAFGgJsZiIgODgwNjI2ZGE2MjUwZTU1MzViY2MzYjM1YTU4MDRhNWM; odin_tt=ab7eaf992f0e5cc3871fd8fde7797f8253548498d52cd8f6320c1d408d8fb5f853f6b88fe9d3e249e91b0baac908955a; tt_scid=yZBs23biytSrdLbhg4PwtQsnp5iRak5-8X3Y.rM36zEzqMDW4OWKwf0CAfb4Sa8r725a; ttwid=1%7Cbki1kBY9AbTODWRF62oQmAFNNd1E9JpOrWrMnRcIdwY%7C1651234433%7C69cbf75423181a837f3739e9b73665b4dc82f1070d93934d5843d3ece167b776; __ac_nonce=0626bd85f00123bbca353; __ac_signature=_02B4Z6wo00f010qt8RAAAIDCKacxeDkkRtdKifWAALDLGZ5UTxtgNht0fiirvQ84GFg6fgEpzmKoOpzBna11K-91eblu7vLsme2e9DrawirS.iQkhzxxQA-2FbYMTkKz.zBC6phs4yeOUKGUc6; ixigua-a-s=3; msToken=wDc7U1VNr5xcJOObHh92pRLYNHcJkoa27rC9g9KpqtmyPZRHrp8KwNXRK82rkr2w-XEzqsGab7i_YSSrqQLCbvxl9etcaF4ElWGCvfE9-94Wyw4v8Fuq-LcizatEUIE=',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'
}
url = 'https://www.ixigua.com/7090467065097617931'
1. 發送請求 (訪問網站)
response = requests.get(url, headers=headers) # 亂碼 response.encoding = 'utf-8' # <Response [200]>: 訪問成功
2. 獲取資料
html_data = https://www.cnblogs.com/jnjnj/p/response.text
3. 決議資料 (base64解碼)
# _SSR_HYDRATED_DATA=https://www.cnblogs.com/jnjnj/p/(.*?)</script>
# (.*?): 匹配任何字符 換行符除外
json_str = re.findall('_SSR_HYDRATED_DATA=https://www.cnblogs.com/jnjnj/p/(.*?)</script>', html_data)[0]
# undefined 替換為 null
json_str = json_str.replace('undefined', 'null')
json_dict = json.loads(json_str)
title = json_dict['anyVideo']['gidInformation']['packerData']['video']['title']
title = title.replace(' ', '')
video_url = json_dict['anyVideo']['gidInformation']['packerData']['video']['videoResource']['dash']['dynamic_video']['dynamic_video_list'][-1]['main_url']
audio_url = json_dict['anyVideo']['gidInformation']['packerData']['video']['videoResource']['dash']['dynamic_video']['dynamic_audio_list'][-1]['main_url']
video_url = base64.b64decode(video_url)
audio_url = base64.b64decode(audio_url)
video_url = video_url.decode()
audio_url = audio_url.decode()
4. 保存資料 (視頻 音頻)
video_data = https://www.cnblogs.com/jnjnj/p/requests.get(video_url).content with open(f'{title}.mp4', mode='wb') as f: f.write(video_data) audio_data = requests.get(audio_url).content with open(f'{title}.mp3', mode='wb') as f: f.write(audio_data) ffmpeg = r'ffmpeg -i ' + title + '.mp4 -i ' + title + '.mp3 -acodec copy -vcodec copy ' + title + '-out.mp4' subprocess.run(ffmpeg) os.remove(f'{title}.mp3') os.remove(f'{title}.mp4')
尾語
好了,我的這篇文章寫到這里就結束啦!
有更多建議或問題可以評論區或私信我哦!一起加油努力叭(? ?_?)?
喜歡就關注一下博主,或點贊收藏評論一下我的文章叭!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470573.html
標籤:Python
上一篇:python教程:函式快速入門
