파이썬 requests 3번째 강의는 header와 cookie입니다.
0. 기초 설명
(1) header
예전의 requests의 0번 강의에서 대부분의 웹사이트는 HTTP 통신으로 이루어진다고 말씀드렸습니다.
2020/12/09 - [파이썬/requests] - 파이썬 requests 0. 파이썬으로 HTTP 통신하기
해당 강의에서 사이트를 접속할 때, GET 헤더를 서버에 전송한다고 말씀드렸습니다. 대부분의 브라우저는 헤더를 자동으로 지정해 주지만, 파이썬을 통해 HTTP 통신을 하게 될 경우에는 거의 대부분의 정보를 담지 않습니다.
몇몇 사이트에서는 python-requests라는 Agent를 인식하지 못해서 제대로 된 정보를 보내주지 않는 경우도 있습니다. 그럴 땐 requests에서 헤더를 직접 지정해 줄 수 있습니다.
(2) cookie
쿠키는 HTTP에서 사용자의 정보를 저장하는 데이터입니다. 사용자가 사이트에 방문하면 서버에서는 쿠키라고 하는 데이터를 사용자의 컴퓨터에 저장시키고, 다음에 다시 방문하면 그 쿠키를 통해 빠르게 정보를 처리하는 역할을 합니다.
이러한 쿠키는 서버에서 HTTP 응답 코드를 보낼 때 같이 보내집니다.
서버에서 위와 같은 코드를 보내게 되면, 브라우저에서는 해당 쿠키를 저장하고, 해당 사이트를 다시 접속할 때 쿠키를 HTTP에 포함하여 제출합니다.
1. 실전 코드
헤더와 쿠키를 설정하는 방법은 모든 사이트에 공통으로 적용됩니다.
reqeusts(url=url, headers=header, cookies=cookie)
header를 설정하는 파라미터는 headers, cookie를 설정하는 파라미터는 cookies에 넣어주시면 됩니다.
header와 cookie는 모두 딕셔너리 자료형이나 josn으로 입력해야 합니다. 딕셔너리나 json의 이름이 header나 cookie의 name, 내용이 value값이 됩니다.
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}
cookie = {'name': 'marisara'}
예시로 위와 같은 헤더와 쿠키를 설정하고 아무 사이트에 보내보겠습니다.
위 사진에서 User-Agent값이 python-requests에서 chrome의 헤더로, cookie값이 제가 설정했던 cookie값으로 들어간 것을 볼 수 있습니다.
2. 마치며
header와 cookie는 모든 사이트에서 사용하는 값입니다. 그렇기 때문에 header와 cookie값을 조절하면 브라우저에서 보내는 정보처럼 보내거나 ID나 PW값을 쿠키에 포함시켜서 로그인된 상태로 접속할 수도 있습니다.
import requests
url='http://naver.com'
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'}
cookie = {'name': 'marisara'}
print(requests.get(url=url, headers=header, cookies=cookie))
'파이썬 강의 > requests' 카테고리의 다른 글
파이썬 BeautifulSoup 1. 페이지 크롤링 (0) | 2021.01.24 |
---|---|
파이썬 BeautifulSoup 0. 파이썬으로 크롤링 하기 (0) | 2021.01.23 |
파이썬 requests 2. text와 content (0) | 2021.01.04 |
파이썬 requests 1. get, post, response (1) | 2020.12.16 |
파이썬 requests 0. 파이썬으로 HTTP 통신하기 (0) | 2020.12.09 |