특정 사이트에 홈페이지에 로그인을 하여 로그인 한 상태에서 웹 사이트를 크롤링하는 경우가 많습니다.
이를 위해서 오늘은 로그인을 하기 위한 기술들과 코드를 알아보도록 하겠습니다.
Table Of Contents
로그인 페이지 찾기
먼저, 로그인을 하는 페이지를 찾아야 합니다. 로그인 하는 페이지를 찾고 URL을 알아낸 후 해당 URL에서 데이터를 보내는 페이로드를 찾아 동일한 내용으로 request를 보내면 로그인이 됩니다.
개발자 모드에서 페이로드 찾기
이때, 네트워크 탭에서 캐시 사용 안 함을 체크해 놓고 하는 것이 좋습니다.
아래와 같은 페이로드를 찾아서 실제 코드에 동일하게 붙여 넣으면 됩니다.
saveId는 n으로 바꿔줬습니다.
코드 작성하기
위의 코드 분석으로 페이로드를 찾으면 전송해야하는 데이터를 알 수 있습니다.
이제 이를 이용해서 실제 로그인하는 로직을 파이썬으로 작성하면 다음과 같습니다.
로그인은 post 방식으로 사용하기 때문에 request를 post로 해서 전송하면 로그인이 됩니다.
# 여기서는 로그인 로직을 구현합니다.
payload = {
'mode': 'login',
'returnUrl': 'https://www.ggsan.com/',
'loginId': self.login_id,
'loginPwd': self.login_pw,
'saveId': 'n'
}
response = self.session.post(self.login_url, data=payload)
# HTTP 상태 코드를 확인합니다.
오늘은 특정 사이트에 접속하고 로그인 할때, 페이로드를 어떻게 보고, 로그인을 파이썬에서 어떻게 하는지 알아보았습니다.
이런 방법으로 로그인 되는 사이트도 있고, 만약 안되면 크롬 드라이버와 셀레니엄(selenium)이라는 것을 통해서도 할 수 있습니다.
이 방법은 나중에 다시 알아보겠습니다.
'IT' 카테고리의 다른 글
우분투 20.04 리눅스에서 crontab(크론탭)으로 주기적인 작업 자동화하기 (0) | 2024.10.21 |
---|---|
우분투에서 크롬 드라이버와 Selenium으로 headless(헤드리스) 웹 크롤링 문제 해결하기 (1) | 2024.09.23 |
리눅스(우분투 20.04)에서 커맨드라인으로 구글 크롬(google-chrome) 설치하기 (1) | 2024.09.23 |
워드프레스 블로그 홈페이지 1분만에 자동 목차 차례 만들고 적용하기 - 플러그인으로 가장 쉽게 하기 (9) | 2024.08.28 |
우분투 리눅스(ubuntu linux)에서 selenium으로 웹 크롤링 하기 (2) | 2024.08.17 |