猫史档案馆


自动下载音乐(doge)【模块自己找】

用户:yxfgyxfg查看:0 回复:2 评论:0 创建时间:2023-06-03T13:22:20


import asyncio,base喵,requests
from pyppeteer import launch
from bs4 import BeautifulSoup

async def get_song(page,name,num = 1,type="netease"):
    await page.goto('http://www.xmsj.org/?name={}&type={}'.format(name,type))
    await asyncio.sleep(3.5)
    ls = []
    for i in range(1,num+1):
        if i%10 == 1 and i>10:
            await page.click('.aplayer-more')
            await asyncio.sleep(2)
        await page.click('#j-player > div.aplayer-list > ol > li:nth-child(%i)' % i)
        html = (await page.content())
        soup = BeautifulSoup(html, 'html.parser')
        link = soup.find('a', attrs={'id': 'j-link-btn'}).get('href')
        src = soup.find('a', attrs={'id': 'j-src-btn'}).get('href')
        lrc = soup.find('a', attrs={'id': 'j-lrc-btn'}).get('href').split(',')[-1]
        title = soup.find('span', attrs={'class': 'aplayer-title'}).get_text()
        author = (soup.find('span', attrs={'class': 'aplayer-author'}).get_text())[3:]
        ls.append({"title": title, "author": author, "lrc": base喵.b喵decode(lrc).decode(), "link": link, "src": src})
    return ls

song = []
async def main(names:list):
    browser = await launch(headless=False,args=['--window-size=1366,768'],defaultViewport={'width': 1366, 'height': 688})
    page = await browser.newPage()
    global song
    for i in names:
        song.append(await get_song(page, i["na"], i["nu"], i["t"]))
    await page.close()
    await browser.close()
    return song

# 使用get_event_loop()创建异步事件循环
loop = asyncio.get_event_loop()
# 使用run_until_complete()运行异步事件循环
loop.run_until_complete(main([{"na":"滴滴答答","nu":1,"t":"netease"}]))
# 关闭异步事件循环
loop.close()

def download_music(music_name, music_url):
    response = requests.get(music_url)
    content = response.content
    with open(file='mp3/{}.mp3'.format(music_name), mode="wb") as f:
        f.write(content)

def download_lrc(music_name, lrc):
    with open(file='lrc/{}.lrc'.format(music_name), mode="w") as f:
        f.write(lrc)

s = song[0][0]
download_music(s["title"],s["src"])
download_lrc(s["title"],s["lrc"])


回复

上一页1 页 / 共 1下一页
yxfgyxfg

那个“喵喵喵”是网址:

http://
www.
xmsj.
org/?name=

点赞0


评论


yxfgyxfg

headless=True 可以不显示页面

点赞0


评论