一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python模擬登錄網(wǎng)易云音樂并自動(dòng)簽到

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

2021-11-22 10:08weixin_43649691 Python

時(shí)隔三周沒有和大家見過面了,最近在研究python模擬登陸專題,話不多說,讓我們愉快地開始實(shí)現(xiàn)模擬登陸實(shí)現(xiàn)網(wǎng)易云自動(dòng)簽到,需要的朋友可以參考下

一、開發(fā)工具

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

相關(guān)模塊:

DecryptLogin模塊;

argparse模塊;

以及一些Python自帶的模塊。

二、環(huán)境搭建

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

三、原理簡介

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

?
1
2
3
4
5
6
'''模擬登錄'''
@staticmethod
def login(username, password):
  lg = login.Login()
  _, session = lg.music163(username, password)
  return session

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

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

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

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

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

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

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

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

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

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

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

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

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

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

?
1
2
3
4
5
6
7
8
from DecryptLogin.platforms.music163 import Cracker
 
cracker = Cracker()
# 注: typeid為0代表APP上簽到, 為1代表在網(wǎng)頁上簽到
data = {
          'type': typeid
        }
data = cracker.get(data)

然后發(fā)送請求測試一下:

?
1
2
3
4
5
6
7
8
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ù)是這樣的:

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

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

?
1
2
3
4
5
6
7
8
9
10
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è)文件:

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

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

?
1
2
3
4
5
6
7
'''命令行參數(shù)解析'''
def parseArgs():
  parser = argparse.ArgumentParser(description='網(wǎng)易云音樂自動(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 密碼

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

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

原文鏈接:https://blog.csdn.net/weixin_43649691/article/details/117416881

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 26uuu成人人网图片 | 国产欧美综合一区二区 | 精品一区二区三区在线成人 | 男人天堂999| 日本人与黑人做爰视频网站 | 男人的天堂久久精品激情a 男人的天堂va | 欧美另类老女人 | 日本红怡院亚洲红怡院最新 | 日韩一区二区三区精品 | 国产精品视频第一页 | 亲爱的客栈第二季免费观看完整版 | 亚洲第一色网 | 国产成人精品一区二三区 | 午夜伦理电影在线观免费 | 99久久免费视频 | 三级视频中文字幕 | 色婷婷综合久久久 | 青青草原网 | 天天综合天天色 | 国产亚洲精aa在线观看香蕉 | 冰漪丰满大乳人体图片欣赏 | 荡娃艳妇系列小说 | 国产一卡 | 欧美日韩中文国产一区二区三区 | 成人私人影院在线版 | 四虎影视在线观看永久地址 | 成年私人影院免费视频网站 | 午夜伦理yy44008影院 | 久久视频这里只精品99热在线观看 | 风间由美理论片在线观看 | 丁香六月色婷婷综合网 | 国产福利一区二区三区 | 99re精品在线 | 亚洲国产精品久久久久 | 免费视频片在线观看大片 | 久久re视频精品538在线 | 成人小视频在线观看免费 | 色花堂中文字幕98堂网址 | 日韩精品欧美国产精品亚 | 精品国产一区二区三区久 | 99久久伊人精品波多野结衣 |