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
반응형
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬) paramiko를 이용해 서버에 ssh 붙고 명령 날리기 (0) | 2023.10.27 |
---|---|
enumerate로 인덱스 번호 붙이기 (0) | 2023.09.21 |
파이썬 함수에서 return (0) | 2023.08.24 |
selenium을 이용한 웹 페이지 자동화 구현 (0) | 2022.09.16 |
django.db에 데이터 추가하기 (0) | 2022.07.09 |
댓글