def getMusic(self, vid, title): sql = "video_id = '" + vid + "'" model = AllMusic() if (model.getOne(sql) == None): model.artist = '' model.song = title model.video_id = vid model.is_download = 0 Base.download_v3(vid, title) model.is_download = 1 model.insert() else: print("Already has:" + title)
def daily(self, day=None, cid=297): if (day == None): day = self.date url = 'https://kma.kkbox.com/charts/api/v1/daily' dic = { 'date': day, 'type': 'song', 'category': cid, 'lang': 'tc', 'limit': 50, 'terr': 'tw' } res = requests.get(url, params=dic) stock_dict = json.loads(res.text) songs = stock_dict['data']['charts']['song'] for song in songs: self.mysongs.append([ Base.strclear(song['artist_name']), Base.strclear(song['song_name']) ]) Base.printissue()
def getlist(self): url = "http://mojim.com/twzhot-song.htm" res = requests.get(url) soup = BeautifulSoup(res.text, "lxml") table = soup.find('td', id="mx45_M").find('table') tagList = table.find_all('div') tagList.remove(tagList[7]) #略過其他 tagList.remove(tagList[6]) #略過日文 for tag in tagList: songs = tag.find_all('td') for song in songs: item = song.find('a') artist = song.find('a', class_="X1") if item is not None: item = re.split('[0-9]+\.', item.get_text()) artist = re.split('[<](.*)[>]', artist.get_text()) self.mysongs.append([ Base.strclear(artist[1].strip()), Base.strclear(item[1]) ]) Base.printissue()
def weekly(self, yesterday=yesterday, cid=297, t="song"): self.date = str(Base.getLastThursday()) #https://kma.kkbox.com/charts/api/v1/weekly?category=297&date=2018-03-08&lang=tc&limit=50&terr=tw&type=newrelease 每周新歌榜單 #一樣由上面的網址決定,榜單只存兩周 url = 'https://kma.kkbox.com/charts/api/v1/weekly' dic = { 'date': self.date, 'type': t, 'category': cid, 'lang': 'tc', 'limit': 50, 'terr': 'tw' } res = requests.get(url, params=dic) stock_dict = json.loads(res.text) songs = stock_dict['data']['charts'][t] #TODO 要判斷是否存在元素 for song in songs: self.mysongs.append([ Base.strclear(song['artist_name']), Base.strclear(song['song_name']) ]) Base.printissue()
from AllWeb import kkbox from mypackage import Base from mypackage.model import AllMusic kk = kkbox() # kk.daily() kk.weekly() #297華語 kk.weekly(cid=390) #西洋 # kk.weekly(cid=324) # kk.weekly(cid=352) key = Base.getKey() model = AllMusic() model.createtable() mylist = Base.getArrMysongs() for row in mylist: try: vid = Base.search_hot(key, row[0] + " " + row[1]) sql = "video_id = '" + vid + "'" model = AllMusic() if (model.getOne(sql) == None): model.artist = row[0] model.song = row[1] model.video_id = vid model.is_download = 0 fileName = "%s - %s" % (row[0], row[1]) Base.download_v3(vid, fileName) model.is_download = 1
def __init__(self): self.mysongs = Base.getArrMysongs()
from AllWeb import mojim from mypackage import Base from mypackage.model import AllMusic mm = mojim() mm.getlist() key = Base.getKey() mylist = Base.getArrMysongs() for row in mylist: try: vid = Base.search_hot(key,row[0]+" "+row[1]) sql = "video_id = '" + vid + "'" model = AllMusic() if (model.getOne(sql) == None): model.artist = row[0] model.song = row[1] model.video_id = vid model.is_download = 0 # Base.download_v2(vid,row[0],row[1]) model.insert() else: print("Already has:"+row[0]+"-"+row[1]) except: print("[Error]:%s - %s"%(row[0], row[1]))
import time import pafy import requests from bs4 import BeautifulSoup from mypackage import Base from mypackage.model import AllMusic def getList(): model = AllMusic() return model.getAll() if __name__ == "__main__": songList = getList() #1170 # print(songList[0][1]) i = 1 for song in songList: try: print("SongName:%s,vid:%s" % (song[3], song[1])) Base.download_v3(song[1], song[3]) i = i + 1 # if (i % 10 == 0): # time.sleep(5) except Exception as e: print("Error:%s" % (song[3])) print(str(e))