Python 아 날로 그 로그 인 왕 이 클 라 우 드 음악 및 자동 출석

개발 도구
**Python***버 전:*3.6.4
관련 모듈:
DecryptLogin 모듈;
argparse 모듈;
파 이 썬 자체 모듈 도 있 습 니 다.
2.환경 구축
Python 을 설치 하고 환경 변수 에 추가 하면 pip 설치 에 필요 한 관련 모듈 을 설치 하면 됩 니 다.
3.원리 소개
출석 을 하려 면 먼저 모 의 로그 인 이 필요 합 니 다.여기 서 우 리 는 우리 가 시작 한 DecryptLogin 라 이브 러 리 를 간단하게 이용 하여 왕 이 클 라 우 드 음악의 모 의 로그 인 을 실현 합 니 다.

'''    '''
@staticmethod
def login(username, password):
  lg = login.Login()
  _, session = lg.music163(username, password)
  return session
성공 적 으로 로그 인 한 후에 우 리 는 왕 이 클 라 우 드 음악의 자동 출석 을 어떻게 실현 하 는 지 분석 해 보 자.F12 를 누 르 면 개발 자 도구 나 마우스 오른쪽 단 추 를 누 르 고 왕 이 클 라 우 드 음악의 출석 단 추 를 누 르 십시오.

출석 체크 로 의심 되 는 post 요청 을 발견 할 수 있 습 니 다:
图片
링크 구성:

'https://music.163.com/weapi/point/dailyTask?csrf_token=' + csrf
이전 글 에서 csrf 라 는 매개 변 수 는 로그 인 한 cookies 에서 찾 을 수 있 습 니 다.이와 같 습 니 다.

csrf = re.findall('__csrf=(.*?) for', str(session.cookies))[0]
그래서 우리 가 지금 해결 해 야 할 문 제 는 이 post 가 제출 해 야 할 data 의 원문 을 어떻게 찾 는 것 입 니까?웹 페이지 에서 본 내용 은 암호 화 된 것 이기 때 문 입 니 다.이렇게:
图片
图片
첫 번 째 는 분명히 우리 가 출석 인 터 페 이 스 를 찾 은 것 이다.그러면 두 번 째 를 눌 러 보 자.
图片
query 가 우리 가 원 하 는 원문 은 아니 겠 지?시도 에 성공 하면 피 를 버 는 게 아니 겠 습 니까?따라서 DecryptLogin 라 이브 러 리 에 적 힌 왕 이 클 라 우 드 음악 post 매개 변수 암호 화 알고리즘 을 호출 하여 data 를 암호 화 합 니 다(왕 이 클 라 우 드 음악 모든 post 가 요청 한 데 이 터 는 암호 화 알고리즘 으로 암호 화 한 다음 에 제출 합 니 다).

from DecryptLogin.platforms.music163 import Cracker

cracker = Cracker()
#  : typeid 0  APP   ,  1        
data = {
          'type': typeid
        }
data = cracker.get(data)
그리고 테스트 요청 보 내기:

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)
되 돌아 오 는 데 이 터 는 다음 과 같 습 니 다:
图片
이 결 과 는 우리 가 방금 추측 한 것 이 완전히 정확 하 다 는 것 을 설명 한다.단지 우리 가 이미 출석 을 했 기 때문에 중복 출석 을 표시 한 것 이다.마지막 으로 매일 명령 행 에 계 정 비밀 번 호 를 입력 하 는 시간 을 절약 하기 위해 스 크 립 트 의 맨 앞 에 몇 줄 의 코드 를 추가 할 수 있 습 니 다.

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()
코드 의 미 를 설명 하 십시오.현재 폴 더 에 config.json 파일 이 있다 면:
图片
그러면 저 희 는 이 json 파일 에서 사용자 의 계 정 이름 비밀 번 호 를 직접 읽 습 니 다.그렇지 않 으 면 명령 행 매개 변수 해석 함 수 를 시작 합 니 다.

'''       '''
def parseArgs():
  parser = argparse.ArgumentParser(description='         ')
  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 파일 에 자동 으로 저장 하도록 합 니 다.그러면 다음 에 계 정 비밀 번 호 를 다시 입력 할 필요 가 없습니다.
효과 전시
실행 방법:
python signin.py--username 사용자 이름--password 비밀번호
image.png
파 이 썬 모 의 로그 인 왕 이 클 라 우 드 음악 과 자동 로그 인 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 모 의 로그 인 및 로그 인 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기