데이터과학 삼학년

[크롤링] 로그인이 필요한 웹사이트 크롤링 방법(feat. requests) 본문

Natural Language Processing

[크롤링] 로그인이 필요한 웹사이트 크롤링 방법(feat. requests)

Dan-k 2023. 3. 20. 10:00
반응형

로그인이 필요한 웹사이트를 크롤링하려면, 먼저 로그인이 되어 있는 세션을 유지해야 함!!

 

파이썬 requests를 이용한 로그인 후 크롤링 방법

1. requests 모듈 설치

크롤링을 하기 위해서는 requests 모듈을 사용

pip install requests

 

2. 로그인 정보 확인

웹 사이트에 로그인하기 위해서는 로그인 정보를 확인해야 함

로그인 정보는 일반적으로 사용자 이름과 비밀번호임

 

3. 세션 유지

세션을 유지하기 위해 requests 모듈의 Session 클래스를 사용

Session 클래스는 HTTP 요청을 유지하면서 쿠키와 같은 데이터를 저장할 수 있음

 

4. 로그인 요청

세션을 만든 후, 로그인을 요청합니다. 로그인 요청은 POST 요청으로 이루어짐

사용자 이름과 비밀번호를 포함한 데이터를 요청에 첨부하고, 로그인을 처리하는 URL을 사용

 

5. 로그인 정보 유지

로그인을 완료하면 세션에 쿠키 정보가 저장

이 정보를 사용하여 다음 요청부터 로그인 상태를 유지할 수 있음

 

6. 크롤링

로그인 정보를 유지한 상태에서 크롤링을 수행

requests 모듈을 사용하여 GET 요청을 보내고, 크롤링하고자 하는 웹페이지의 HTML을 얻어옴

반응형

파이썬 코드 예시

import requests

# 로그인 정보
LOGIN_URL = '<https://example.com/login>'
USERNAME = 'username'
PASSWORD = 'password'

# 세션 유지
session = requests.Session()

# 로그인 요청
login_data = {
    'username': USERNAME,
    'password': PASSWORD
}
response = session.post(LOGIN_URL, data=login_data)

# 로그인 정보 유지
if response.status_code == 200:
    print('로그인 성공')
else:
    print('로그인 실패')

# 크롤링
CRAWLING_URL = '<https://example.com/crawling>'
response = session.get(CRAWLING_URL)

# HTML 출력
print(response.content)
728x90

위의 코드에서 LOGIN_URL은 로그인을 처리하는 URL이고,

USERNAME과 PASSWORD는 로그인에 사용될 사용자 이름과 비밀번호

크롤링하고자 하는 페이지의 URL은 CRAWLING_URL에 설정

세션은 requests.Session()으로 생성되며, 로그인 정보를 포함한 POST 요청은 session.post()를 사용하여 보내고,

크롤링하고자 하는 페이지의 GET 요청은 session.get()으로 보냄

728x90
반응형
LIST
Comments