본문 바로가기
프로그래밍/파이썬

파이썬 request - post 형식으로 request하고 response 받기

by laoching 2023. 10. 13.
728x90
반응형

예시는 하나은행 환율 사이트

 

프록시로 크롤링 할 페이지의 http packet을 보면 body에 post로 보내줘야 할 데이터들이 적혀있다.

 

그럼 파이썬 코드는 아래처럼 짜야된다.

import requests
from bs4 import BeautifulSoup

url = 'https://www.kebhana.com/cms/rate/wpfxd651_01i_01.do'

#ajax=true&curCd=&tmpInqStrDt=2023-05-11&pbldDvCd=3&pbldSqn=&inqStrDt=20230511&inqKindCd=1&hid_key_data=&hid_enc_data=&requestTarget=searchContentDiv

post_data = {
    'ajax': 'true',
    'pbldDvCd': '3',
    'tmpInqStrDt': '2023-05-11',
    'inqStrDt': '20230511',
    'inqKindCd' : '1',
    'requestTarget' : 'searchContentDiv',
}

r = requests.session()
response = r.post(url, data = post_data)
bs = BeautifulSoup(response.content, "html.parser")

print(bs)

 

이유는 ,,,

 

ajax=true&curCd=&tmpInqStrDt=2023-10-13&pbldDvCd=3&pbldSqn=&inqStrDt=20231013&inqKindCd=1&hid_key_data=&hid_enc_data=&requestTarget=searchContentDiv

 

위 구문을 하나씩 분석하면 된다.

 

ajax=true

curCD=

tmpInqStrDt=2023-10-13

pbldDvCD=3

pbldSqn=

inqStrDt=20231013

inqKindCd=1

hid_key_data=

hid_enc_data=

requestsTarget=searchContentDiv

 

값이 없는 것들은 비워두고 있는 것들만 post_data라는 변수에 담아서 requests 날려주면 된다.

 

728x90
반응형

댓글