最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年06月03日 14:36:47   作者:weixin_43649691  
時隔三周沒有和大家見過面了,最近在研究python模擬登陸專題,話不多說,讓我們愉快地開始實(shí)現(xiàn)模擬登陸實(shí)現(xiàn)網(wǎ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)易云音樂的模擬登錄:

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

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

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

圖片

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

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

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

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

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

圖片

圖片

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

圖片

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

from DecryptLogin.platforms.music163 import Cracker

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

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

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ù)是這樣的:

圖片

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

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這個文件:

圖片

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

'''命令行參數(shù)解析'''
def parseArgs():
  parser = argparse.ArgumentParser(description='網(wǎ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

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

四、效果展示

運(yùn)行方式:

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

image.png

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

相關(guān)文章

  • 基于python 爬蟲爬到含空格的url的處理方法

    基于python 爬蟲爬到含空格的url的處理方法

    今天小編就為大家分享一篇基于python 爬蟲爬到含空格的url的處理方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 使用python-pptx包批量修改ppt格式的實(shí)現(xiàn)

    使用python-pptx包批量修改ppt格式的實(shí)現(xiàn)

    今天小編就為大家分享一篇使用python-pptx包批量修改ppt格式的實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Pandas操作MySQL的方法詳解

    Pandas操作MySQL的方法詳解

    這篇文章主要介紹了如何使用Pandas來操作MySQL數(shù)據(jù)庫。主要是包含查詢MySQL中的數(shù)據(jù),以及如何往數(shù)據(jù)庫中寫入數(shù)據(jù),感興趣的小伙伴可以了解一下
    2022-08-08
  • Python類的繼承、多態(tài)及獲取對象信息操作詳解

    Python類的繼承、多態(tài)及獲取對象信息操作詳解

    這篇文章主要介紹了Python類的繼承、多態(tài)及獲取對象信息操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python面向?qū)ο蟪绦蛟O(shè)計中類、繼承、多態(tài)等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-02-02
  • 使用Pycharm+PyQt5彈出子窗口的程序代碼

    使用Pycharm+PyQt5彈出子窗口的程序代碼

    這篇文章主要介紹了使用Pycharm+PyQt5彈出子窗口的解決方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 如何在django中實(shí)現(xiàn)分頁功能

    如何在django中實(shí)現(xiàn)分頁功能

    這篇文章主要介紹了如何在django中實(shí)現(xiàn)分頁功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • YOLOv5改進(jìn)之添加CBAM注意力機(jī)制的方法

    YOLOv5改進(jìn)之添加CBAM注意力機(jī)制的方法

    注意力機(jī)制最先被用在NLP領(lǐng)域,Attention就是為了讓模型認(rèn)識到數(shù)據(jù)中哪一部分是最重要的,為它分配更大的權(quán)重,獲得更多的注意力在一些特征上,讓模型表現(xiàn)更好,這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)之添加CBAM注意力機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Python識別快遞條形碼及Tesseract-OCR使用詳解

    Python識別快遞條形碼及Tesseract-OCR使用詳解

    這篇文章主要介紹了Python識別快遞條形碼及Tesseract-OCR使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Django如何自定義model創(chuàng)建數(shù)據(jù)庫索引的順序

    Django如何自定義model創(chuàng)建數(shù)據(jù)庫索引的順序

    這篇文章主要介紹了Django如何自定義model創(chuàng)建數(shù)據(jù)庫索引的順序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • Python+numpy實(shí)現(xiàn)一個蜘蛛紙牌游戲

    Python+numpy實(shí)現(xiàn)一個蜘蛛紙牌游戲

    蜘蛛紙牌大家玩過沒有?之前的電腦上自帶的游戲,用他來摸魚過的舉個手。但是現(xiàn)在的電腦上已經(jīng)沒有蜘蛛紙牌了。所以本文就來用Python做一個吧,需要的可以參考一下
    2022-12-12

最新評論

江川县| 新郑市| 新建县| 邢台市| 沛县| 东乡族自治县| 志丹县| 勃利县| 益阳市| 襄城县| 盈江县| 新和县| 武城县| 唐河县| 江达县| 罗甸县| 东方市| 锦屏县| 同心县| 合江县| 秭归县| 侯马市| 酒泉市| 武汉市| 青河县| 浏阳市| 南投县| 兖州市| 兰溪市| 淳化县| 琼海市| 高青县| 威远县| 盘山县| 安仁县| 尉犁县| 巴林右旗| 佛学| 尤溪县| 津南区| 清河县|