반응형
Selenium wire 모듈을 사용하다보면 가끔 POST 요청으로 백그라운드에서 XHR 요청이 발생하는 경우 있습니다.
하지만 문제는 POST 요청에 대한 파라미터를 변경한 값을 결과 값으로 가져오고 싶은데 그게 어렵다는 문제입니다ㅠㅠ
이런 경우 아래와 같은 코드를 사용하면 Selenium wire 모듈을 통해서도 얼마든지 세션을 유지하면서 Post 요청을 사용할 수 있습니다.
해결책 - Python 코드
from seleniumwire import webdriver
import requests
# WebDriver 설정
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(seleniumwire_options={}, options=options)
# Selenium 모듈로 홈페이지 요청
url = 'https://example.com'
driver.get(url)
# POST 요청을 하는 특정 페이지 요청 값을 수정하여 requests 모듈로 재요청
for idx, request in enumerate(driver.requests):
if '</api와 같은 홈페이지 uri 값>' in request.url and request.method == 'POST':
post_url = request.url
headers = request.headers
params = {
'key1': 'val1',
'key2': 'val2'
params_json = json.dumps(params)
response = requests.post(post_url, data=params_json, headers=headers)
print(response.text)
break
caul334@gmail.com
내용이 유용하셨다면 좋아요&댓글 부탁드립니다.
이 블로그를 이끌어갈 수 있는 강력한 힘입니다!
반응형
'IT > Python' 카테고리의 다른 글
[Python] 파이썬으로 Elasticsearch 접속하고 검색하는 방법 (필수 기능) (0) | 2024.12.04 |
---|---|
[Python] 회사에서 Selenium과 Requests 모듈 사용 시 프록시 적용 방법 (3) | 2024.11.06 |
[Python] Selenium Wire 사용 시 "주의요함" 메시지 해결 방법 (0) | 2024.10.11 |
[Python] 파이썬을 이용하여 아이폰 사진 파일 이름을 찍은시간으로 변경하고 백업하는 방법 (6) | 2022.04.05 |
[Python] 정규표현식(Regex)으로 타임스탬프 형식의 파일 이름 변경하기 (8) | 2022.03.26 |