使用したライブラリ
requests:
クローラーが使用するリクエストライブラリ
jsonpath:
jsonデータを処理するためのサードパーティライブラリ
os:
Pythonファイルシステム操作ライブラリ
urlretrieve:
Url解析ライブラリ
tkinter:
Tkinterは、Pythonでより多く使用されるGUIライブラリです。GUIはページの制御操作を指します。これは、Rの最も基本的なエディタR-guiに似ています。グラフィカルボタン、テキストボックス、を実現できる最も基本的な描画ツールのいくつかを提供します。この記事で使用されているグラフィックコントロールには、主にVBフレーバーが含まれています。
チュートリアルはステーションBのPython学習者からのものです
# 必要なライブラリをインポートする
# 曲名を検索
import requests
import jsonpath
import os
from urllib.request import urlretrieve
from tkinter import*
# クローラー部分=-===============================================
# 曲ダウンロード機能
def song_load(url,title):
# ダウンロードした音楽を保存するフォルダを作成する
os.makedirs("音楽",exist_ok=TRUE)
# 保存パスと保存名を設定します
path ="音楽\{}.mp3".format(title)
# ダウンロードの進行状況を示すテキストを挿入
text.insert(END,'歌:{}...ダウンロード...'.format(title))
# テキストボックススクロール
text.see(END)
# 更新
text.update()
# urlretrieve関数を介してダウンロードをリクエストする
urlretrieve(url,path)
# テキストコントロールでダウンロードが完了したことを示す
text.insert(END,'{}ダウンロード済み'.format(title))
# テキストボックススクロール
text.see(END)
# 更新
text.update()
# 音楽取得機能を定義する
def get_music_name():
name=entry.get()
# スクラブ防止を防ぐためにリクエストヘッダーを追加します
# これは、Xを使用した前のものとは異なります-Requested-With
headers={'X-Requested-With':'XMLHttpRequest'}
# パラメータは、ログインや検索など、投稿リクエストの特別な要件です。
# このとき、フォームデータをリクエスト機能に追加する必要があります
params={'input':name,'filter':'name','type':'netease','page':1,}
# 宛先URLは無料のvip音楽分析ウェブサイトです
url ='http://www.youtap.xin/'
# 投稿機能で宛先URLをリクエストする
resp = requests.post(url,data=params,headers=headers)
# json関数を使用してターゲットを解析します
data = resp.json()
# ターゲット音楽の名を取得します
title=jsonpath.jsonpath(data,"$..title")[0]
# ターゲットの音楽作者を取得する
author=jsonpath.jsonpath(data,"$..author")[0]
# ダウンロードアドレスを取得する
url=jsonpath.jsonpath(data,"$..url")[0]
# 音楽のダウンロード
song_load(url,title)
# インターフェイスレイアウト-==========================================================
# 1. キャンバスを作成し、Tk関数を使用してコントロールを構築します
root =Tk()
# 2. コントロールタイトルを追加
root.title("ミュージックダウンローダー")
# 3. プログラムのウィンドウサイズを設定する
root.geometry('760x550+400+200')
# 4. ラベルコンポーネント
label=Label(root,text='ダウンロードした曲を入力してください: ',font=('中国のXingkai',20))
# 5. ラベルの配置
label.grid()
# 6. 入力ボックスを設定し、入力ボックスを0行1列に配置します
entry =Entry(root,font=('公式スクリプト',20))
entry.grid(row=0, column=1)
# 7. リストボックスを設定し、1行0として配置します-2列、同時にセルサイズを設定
text=Listbox(root,font=('公式スクリプト',20),width=50,height=15)
text.grid(row=1,columnspan=2)
# 8. ダウンロードボタンコントロールを追加
# 以前に記述されたgetをコマンドパラメータを介して呼び出します_music_名前関数
button1=Button(root,text='ダウンロード: ',font=('公式スクリプト',15),command=get_music_name)
button1.grid(row=2,column=0,sticky=W)
# 9. 終了ボタン
# コマンドパラメータを使用してシステムの終了関数を呼び出し、終了を実現します
button2=Button(root,text='脱落: ',font=('公式スクリプト',15),command=root.quit)
button2.grid(row=2,column=1,sticky=E)
# ループを介してインターフェイスを継続的に表示します。そうしないと、インターフェイスが次のように点滅します。
root.mainloop()
インターフェース
主にインターフェイスのサイズ設定が原因で、インターフェイスは完全ではなく、多くの役に立たない境界線があります
ダウンロードする
入力ボックス、ダウンロードボタン、終了ボタン、およびリストボックスコントロールが適切に機能します
結果をダウンロード
作業ディレクトリで、ダウンロードした音楽を見つけます
可聴テスト
音楽プレーヤーのテストを通して、曲は完成します
今日から学校が始まってからほぼ1週間が経ちました。北京に戻ってから忙しくなりました。途中で山東に出張しました。また、リゲンの公式アカウントを周源にドラッグしました。最近はたくさんのことがあります。世界が平和になりますように。人々は幸せです。
love&peace
Recommended Posts