主頁(yè) > 知識(shí)庫(kù) > Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到

Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到

熱門標(biāo)簽:地圖標(biāo)注面積 市場(chǎng)上的電銷機(jī)器人 北京電銷外呼系統(tǒng)加盟 朝陽(yáng)手機(jī)外呼系統(tǒng) 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版 佛山400電話辦理 小蘇云呼電話機(jī)器人 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 儋州電話機(jī)器人

一、開發(fā)工具

**Python****版本:**3.6.4

相關(guān)模塊:

DecryptLogin模塊;

argparse模塊;

以及一些Python自帶的模塊。

二、環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關(guān)模塊即可。

三、原理簡(jiǎn)介

既然要簽到,首先,自然是需要模擬登錄啦,這里我們還是簡(jiǎn)單地利用我們開源的DecryptLogin庫(kù)來(lái)實(shí)現(xiàn)網(wǎng)易云音樂(lè)的模擬登錄:

'''模擬登錄'''
@staticmethod
def login(username, password):
  lg = login.Login()
  _, session = lg.music163(username, password)
  return session

成功登錄之后,我們來(lái)分析一下如何實(shí)現(xiàn)網(wǎng)易云音樂(lè)的自動(dòng)簽到。按F12打開開發(fā)者工具或鼠標(biāo)右鍵檢測(cè),然后點(diǎn)擊一下網(wǎng)易云音樂(lè)的簽到按鈕:

可以發(fā)現(xiàn)一個(gè)疑似簽到用的post請(qǐng)求:

其鏈接構(gòu)成為:

'https://music.163.com/weapi/point/dailyTask?csrf_token=' + csrf

之前的文章里我們說(shuō)過(guò),csrf這個(gè)參數(shù)在登錄后的cookies里可以找到,類似這樣:

csrf = re.findall('__csrf=(.*?) for', str(session.cookies))[0]

所以我們現(xiàn)在要解決的問(wèn)題是如何找到該post請(qǐng)求需要提交的data的原文,因?yàn)榫W(wǎng)頁(yè)里看到的內(nèi)容是加密后的,就像這樣:

第一個(gè)顯然是我們找到簽到接口,那就點(diǎn)開第二個(gè)看看吧:

query不會(huì)就是我們想要的原文吧。嘗試成功的話豈不是血賺?于是,調(diào)用一下DecryptLogin庫(kù)里寫好的網(wǎng)易云音樂(lè)post參數(shù)加密算法,來(lái)加密一下data(網(wǎng)易云音樂(lè)所有post請(qǐng)求的攜帶的data原文都要先用一個(gè)加密算法進(jìn)行加密之后再提交):

from DecryptLogin.platforms.music163 import Cracker

cracker = Cracker()
# 注: typeid為0代表APP上簽到, 為1代表在網(wǎng)頁(yè)上簽到
data = {
          'type': typeid
        }
data = cracker.get(data)

然后發(fā)送請(qǐng)求測(cè)試一下:

signin_url = 'https://music.163.com/weapi/point/dailyTask?csrf_token=' + csrf
headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36',
      'Content-Type': 'application/x-www-form-urlencoded',
      'Referer': 'http://music.163.com/discover',
      'Accept': '*/*'
    }
res = self.session.post(signin_url, headers=headers, data=data)

發(fā)現(xiàn)返回的數(shù)據(jù)是這樣的:

這個(gè)結(jié)果說(shuō)明我們剛剛的猜想完全正確,只是因?yàn)槲覀円呀?jīng)簽到過(guò)了,所以才顯示重復(fù)簽到。最后,為了節(jié)約每天在命令行輸入賬號(hào)密碼的時(shí)間,我們可以在腳本的最前面添加幾行代碼:

if os.path.exists('config.json'):
  f = open('config.json', 'r', encoding='utf-8')
  info = json.load(f)
  f.close()
else:
  args = parseArgs()
  info = {'username': args.username, 'password': args.password}
  f = open('config.json', 'w', encoding='utf-8')
  json.dump(info, f)
  f.close()

解釋一下代碼含義,就是如果當(dāng)前文件夾里有config.json這個(gè)文件:

那么我們就直接從這個(gè)json文件里讀取用戶的賬戶名密碼,否則就啟動(dòng)命令行參數(shù)解析函數(shù):

'''命令行參數(shù)解析'''
def parseArgs():
  parser = argparse.ArgumentParser(description='網(wǎng)易云音樂(lè)自動(dòng)簽到')
  parser.add_argument('--username', dest='username', help='用戶名', type=str, required=True)
  parser.add_argument('--password', dest='password', help='密碼', type=str, required=True)
  args = parser.parse_args()
  return args

讓用戶手動(dòng)輸入賬戶密碼,并自動(dòng)保存到config.json這個(gè)文件中,這樣下次就不需要再重新輸入一遍賬戶密碼啦。

四、效果展示

運(yùn)行方式:

python signin.py --username 用戶名 --password 密碼

到此這篇關(guān)于Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到的文章就介紹到這了,更多相關(guān)Python模擬登錄并簽到內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python爬蟲之自動(dòng)爬取某車之家各車銷售數(shù)據(jù)
  • Python一行代碼實(shí)現(xiàn)自動(dòng)發(fā)郵件功能
  • 使用Gitee自動(dòng)化部署python腳本的詳細(xì)過(guò)程
  • Python實(shí)現(xiàn)網(wǎng)絡(luò)自動(dòng)化eNSP
  • python 辦公自動(dòng)化——基于pyqt5和openpyxl統(tǒng)計(jì)符合要求的名單
  • Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包
  • 瀏覽器常用基本操作之python3+selenium4自動(dòng)化測(cè)試(基礎(chǔ)篇3)
  • Python自動(dòng)化之定位方法大殺器xpath
  • 還在手動(dòng)蓋樓抽獎(jiǎng)?教你用Python實(shí)現(xiàn)自動(dòng)評(píng)論蓋樓抽獎(jiǎng)(一)

標(biāo)簽:江蘇 寧夏 酒泉 龍巖 金融催收 云南 定西 商丘

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到》,本文關(guān)鍵詞  Python,模擬,登錄,網(wǎng)易,云,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python模擬登錄網(wǎng)易云音樂(lè)并自動(dòng)簽到的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章