これらのビデオをPythonでバッチダウンロードするにはどうすればよいですか?わずか15行のコードで簡単に実装できます

寿命が短すぎると言って、私はPythonを使用しています。

これらのビデオをダウンロードしなければ、Pythonを学ぶのは無意味です!
ああ、古いろくでなし


ええと、ビジネスに取り掛かりましょう。

一、事前前奏

まず、Pythonとpycharmがインストールされていない場合は、自分でインストールしてください。インストールについては説明しません。

ビデオチュートリアルを見たい場合は、左側のコードをスキャンしてください。私は特別に説明ビデオを録画しました。

次に、pipによって直接インストールできるモジュール、つまりクローラーのボスであるリクエストがあり、リクエストはデータリクエストモジュールです。

win + rで実行ボックスを開き、cmdと入力してEnterキーを押し、ポップアップコマンドプロンプトウィンドウにpip install requestsと入力し、Enterキーを押してインストールを完了します。

  • インストール失敗の理由
    1.pipは内部コマンドではなく、解決策(環境変数を設定)
    2。多くの赤いレポート(読み取りタイムアウト)、解決策(ネットワークリンクがタイムアウトしたため、ミラーソースが必要切り替えます)
    3。cmdは、インストールされたことを示します合格したか、インストールは成功しましたが、ソリューションであるpycharmにインポートできません(複数のpythonバージョンでインストールできます(anacondaまたはpythonでインストールできます) )、1つをアンインストールするか、pycharmのpythonインタープリターが設定されていません)

ミラーソース

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:https://pypi.hustunique.com/
山东理工大学:https://pypi.sdutlinux.org/
豆瓣:https://pypi.douban.com/simple/

設置方法

例えば

pip3 install -i https://pypi.doubanio.com/simple/ 模块名

pycharmでPythonインタープリターを設定するにはどうすればよいですか?

  1. ファイルの選択>>>設定>>>プロジェクト>>>pythonインタープリター(pythonインタープリター)
  2. 歯車をクリックし、[追加]を選択します。
  3. Pythonインストールパスを追加します

pycharmはどのようにプラグインをインストールしますか?

  1. ファイルの選択>>>設定>>>プラグイン
  2. マーケットプレイスをクリックして、インストールするプラグインの名前を入力します。たとえば、翻訳プラグイン入力翻訳、中国語プラグイン入力中国語
  3. 対応するプラグインを選択し、[インストール]をクリックします。
  4. インストールが成功すると、pycharmを再起動するオプションがポップアップ表示され、[OK]をクリックすると、再起動が有効になります。

2.テキスト

プレリュードは終わりました。トピックに直接進みましょう...

キーアドレス、最初のv.6と2番目のhaokan.baiduを削除しました

1.思考プロセス

ワームケースを実装するにはどうすればよいですか?

各Webサイトのデータ構造は異なり、パケットを自分で再分析してキャプチャする必要がありますが、このプロセスは基本的にpaバグの場合と同じです。

1.データソース分析

  • まず、独自のターゲットアドレスとターゲットデータソースを決定し、URLアドレスを決定します。
  • 開発者ツールによるパケットキャプチャ分析。

2.コード実装プロセス

  • リクエストを送信し、分析したURLアドレスのリクエストを送信します。
  • データを取得し、サーバーから返された応答データを取得します。
  • データを解析し、必要なコンテンツ、ビデオ再生URLアドレス、およびビデオタイトルを抽出します。
  • データを保存し、ローカルフォルダを保存します。

2.コード表示

最初にモジュールをインポートします

import requests
import re

reは正規表現であり、モジュールであり、組み込みであり、インストールする必要はありません。リクエストをインストールするだけで、それだけです。

リクエストを送信

分析したURLアドレスにリクエストを送信します

I.リクエストURLURL[電話番号として理解];
II。リクエストメソッド;
III。ヘッダーを偽装するために追加する必要のあるパラメーター、リクエストヘッダー、辞書データ型、およびキーと値のペアの形式。

for page in range(26, 29):
    print(f'====================================正在采集第{page}页数据内容====================================')
    url = f'https://minivideo/getMiniVideoList.php?act=recommend&page={page}&pagesize=25'
    headers = {
    
    
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)

<Response[200]>リクエストが成功したことを示す200ステータスコードのレスポンスレスポンスオブジェクトを返します。

データを取得する

サーバーから返された応答データを取得します

response.text 获取响应体文本数据           字符串数据类型
response.json() 获取响应体json字典数据     字典数据类型

返されたデータが完全なjsonデータ形式である場合は、後でコンテンツを抽出するのに便利なように、response.json()を直接取得できます。
ディクショナリ値の方が便利です。キーと値のペアに従ってデータコンテンツを直接抽出し、コロンの左側のコンテンツに従ってコロンの右側のコンテンツを抽出できます。

最初にコンテンツを取得し、次にリストを取得します。戻り値はリストデータです。

print(response.text)
print(response.json()['content']['list'])

返されたリストには、ビデオのデータ情報が含まれています。次のアドレスのスクリーンショットは撮りません。恐れ入りますが〜

分析データ

必要なコンテンツ、ビデオ再生URLアドレス、およびビデオタイトルを抽出します。

for index in response.json()['content']['list'][14:]:
    title = index['title']
    play_url = index['playurl']  # 快速复制 ctrl + D
    new_title = re.sub(r'[\/:*?"|<>]', '', title)
    print(title, play_url)

データを保存する

video_content = requests.get(url=play_url).content
with open('video\\' + new_title + '.mp4', mode='wb') as f:
    f.write(video_content)
print('视频保存完成: ', title, play_url)

補充する

jsonはデータを取得します

import requests
import re
import json
url = 'https://com/web/search/api?pn=4&rn=10&type=video&query=%E7%BE%8E%E5%A5%B3'
headers = {
    
    
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36'
}
json_data = requests.get(url=url, headers=headers).json()
for index in json_data['data']['list']:
    index_url = index['url']
    html_data = requests.get(url=index_url, headers=headers).text
    video_info = re.findall('window.__PRELOADED_STATE__ = (.*?);.*?document', html_data)[0]
    json_data_1 = json.loads(video_info)
    title = json_data_1['curVideoMeta']['title']
    video_url = json_data_1['curVideoMeta']['clarityUrl'][-1]['url']
    print(title, video_url)

3.結果表示

ここに画像の説明を挿入
兄弟、今日の共有はここにあります、好きで好きであることを忘れないでください!

おすすめ

転載: blog.csdn.net/fei347795790/article/details/123660880