要件:アーティスト名を入力しますが、シングル曲の歌手を問い合わせます
注:データソースのQQ音楽、ストレスを低減するためにQQの音楽サーバ、回避がアクセスを拒否し、要求されたデータの量が大きすぎではありません。
コード学習の使用のみ
#リファレンスライブラリ要求 のインポートが要求 #制御ループ フラグ= 真 #は1曲得る DEF getmusiclist(歌手、= 「」)を: #辞書ダウンロードしてgetメソッドを呼び出す URLを= " https://cyqq.com/soso/fcgi-bin/ client_search_cp ' #のカスタマイズリクエストヘッダ、ブラウザ偽装 ヘッダー= { " オリジン":" https://y.qq.com " 、 " リファラー":" https://y.qq.com/portal/search.html " "ユーザーエージェント":" のMozilla / 5.0(Macintoshでは、インテルのMac OS X 10_14_3)のAppleWebKit / 537.36(KHTML、ヤモリ等)クローム/ 78.0.3904.108サファリ/ 537.36 OPR / 65.0.3467.78(版百度)」、 } #请求参数 のparams = { ' CT ':' 24 ' 、 ' qqmusic_ver ':' 1298 ' 、 ' new_json ':' 1 ' 、 ' remoteplace ':' txt.yqq。歌"、 ' searchid ':' 70717568573156220 ' 、 ' T ':' 0 ' 、 ' AGGR ':' 1 ' 、 ' CR ':' 1 ' 、 ' catZhida ':' 1 ' 、 ' 可逆':' 0 ' 、 'flag_qc ":' 0 ' 、 ' p型':' 1 '、#現在の曲のページ ' N- ':' 20 '、#の曲の歌のページ番号 ' W ':シンガー,, #のアーティスト名 ' g_tk ':' 714 057 807 ' 、 " loginUin ':' 0 ' ' hostUin ':' 0 "、 ' 形式':' JSON ' 、 ' inCharset ':' UTF8 ' 、 ' outCharset ':' UTF8 ' 、 ' 通知':' 0 ' 、 ' プラットフォーム':' yqq.json ' 、 ' needNewCode ':' 0 " } RESRequests.get =(URL、ヘッダー=ヘッダ、paramsは= paramsは) IF res.status_code == 200である: #1 戻るJSONデータ json_music = res.json() IFでlen(json_music [ ' データ' ] [ ' 曲' ] [ ' 一覧「 ])<= 0: 印刷(」我々は申し訳ありませんが見つかりていない「{}」相関結果「.format(歌手)) 他: のための音楽で json_music [ 」データ「 ] [ 」歌' ] [ ' 一覧' ]: #の曲の名前を タイトル=音楽[ ' タイトル' ] #アルバム ALBUM_NAME =音楽[ ' アルバム' ] [ ' 名前' ] #長い再生するときに = INT(音楽[インターバル' 間隔" ]) 間隔 = " {} {}分秒" .format(間隔// 60、区間60% )# の再生リンク playurl = 'https://y.qq.com/n/yqq/song/{0}.html ' .format(音楽[ ' MID ' ]) 印刷(' ソング名:{}、アルバム:{}、再生時間:{ }、演劇へのリンク:{} ' .format(タイトル、ALBUM_NAME、間隔、playurl)) 他: 印刷(' !要求の失敗' ) DEF アゲイン(): 世界のフラグ N- =入力(' あなたは(クエリを継続するために入力をしたいのnでください/ N)、プログラムを終了:' ) IF N- における [ ' N- ' ' N ' ]: 印刷(「プログラムは、使用のおかげで停止している!」) 旗 = Falseの DEF メイン(): しばらく旗: 歌手、 = INPUT(「?あなたは、単一の歌の歌手を探している人」) getmusiclist(歌手) アゲイン() メイン()