Python 파충 류 는 스 크 립 트 를 사용 하여 Github 에 로그 인하 고 정 보 를 봅 니 다.
대상 주소:https://github.com/login
로그 인 방식 분석:
첫째,form 폼 으로 정 보 를 제출 하고,
둘째,csrftoken,
셋째,post 로 사용자 이름과 비밀 번 호 를 요청 할 때 첫 번 째 get 요청 이 필요 한 쿠키 입 니 다.
넷 째,로그 인 에 성공 한 후 다른 페이지 에 요청 하 는 것 은 첫 번 째 로그 인 에 성공 한 후에 돌아 오 는 쿠키 만 가 져 오 면 됩 니 다.
get 에서 보 낸 요청 으로 원 하 는 token 과 쿠키 를 가 져 옵 니 다.
코드:
import requests
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml') # soup
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value')
# token
r1_cookies = r1.cookies.get_dict() # cookie
# print(r1_cookies)
# print(s1)
\#결과:
{'logged_in': 'no', '_gh_sess': 'VDFWa2hJWjFMb1hpRUFLRDVhUmc3MXg1Tk02TDhsUnhDMERuNGpyT2Y4STlQZ2xCV1lCZEFhK21wdFR1bkpGYUV0WEJzcDEydWFzcm93
aVc4Nk91Q2JicmtRV0NIQ0lRSWM4aFhrSVFYbCtCczBwdnhVN0YySVJJNUFpQnhyTzNuRkJwNDJZUWxUcEk2M2JkM3VSMDdXVHNOY1htQkthckJQZDJyUVR2RzBNUkU3VnltRVF2U
m1admU3c3YzSGlyVnVZVm0ycnA1eUhET1JRVWNLN0pSbndKWjljMGttNG5URWJ1eU8rQjZXNEMxVEthcGVObDFBY2gvc2ZzWXcvWWZab29wQWJyU0l6cmZscWhBQUlzYTA3dTRtb
3l1S0hDYytHY2V1SUhEWlZvVlZoSWZpTzBjNmlidFF2dzI2bWgtLTJON1lqbm5jWUtSYmtiVEM1clJPakE9PQ%3D%3D--897dbc36c123940c8eae5d86f276dead8318fd6c'}
pRz0wapEbu5shksGCeSN0FijWoU9ALw8EPUsXlqgcw1Ezirl0VbSKvkTYqIe8VhxhPH2H/uzGaV6XX+yjTGoVA==
이 두 값 을 가 져 오 면 다음 로그 인 요청 을 보 낼 수 있 습 니 다:두 번 째 post 방식 으로 사용자 이름 비밀번호 제출
코드:
이 코드 는 위의 get 요청 에 이 어 post 요청 부분 일 뿐 입 니 다.
r2 = requests.post(
'https://github.com/session',
data ={
'commit':'Sign in',
'utf8':'✓',
'authenticity_token':s1,
'login':'[email protected]',
'password':' ' #
},
cookies = r1.cookies.get_dict(), # cookie
)
print(r2.cookies.get_dict()) # cookie
성공 하면 로그 인 페이지 의 정 보 를 되 돌려 줍 니 다.post 로그 인 성공 후 개인 정보 페이지 를 봅 니 다.
여 기 는 로그 인 에 성공 한 쿠키 만 가지 고 오시 면 됩 니 다.
\#전체 코드
import requests
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml')
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value')
r1_cookies = r1.cookies.get_dict()
print(r1_cookies)
print(s1)
r2 = requests.post(
'https://github.com/session',
data ={
'commit':'Sign in',
'utf8':'✓',
'authenticity_token':s1,
'login':'[email protected]',
'password':' '
},
cookies = r1.cookies.get_dict(),
)
개인 정보 페이지 보기
print(r2.cookies.get_dict())
r3 = requests.get(
'https://github.com/13131052183/product', #
cookies = r2.cookies.get_dict()
)
print(r3.text)
총결산위 에서 말 한 것 은 소 편 이 소개 한 Python 파충류 가 스 크 립 트 를 이용 해 Github 에 로그 인하 고 정 보 를 확인 하 는 데 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 이 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python 파충류 (1) - 데이터 세척 및 추출re 모듈 의 사용 추출, 일치, 교체 추출: findall () 일치: match () 교체: sub () 예: Xpath 의 기본 문법 표현 식 묘사 하 다. 루트 노드 선택 또는 하위 임의의 노드, 위치 고려 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.