[Python] Requests <-> Selenium 쿠키 연동 > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

[Python] Requests <-> Selenium 쿠키 연동 정보

기타 [Python] Requests <-> Selenium 쿠키 연동

본문

requests python에 대한 이미지 검색결과

 

Python으로 웹크롤링을 할 때

HTTP 전송을 위해 가장 많이 사용하는 모듈은 Requests일 것이고,

직접 브라우저를 컨트롤하기 위해 사용하는 모듈은 Selenium입니다.

 

Requests로 로그인하기 까다로운 사이트도 있기 때문에

다음과 같이 Selnium의 쿠키를 Requests로 보내는 방법으로

일단 Selenium으로 로그인한 후 Requests로 접근할 수 있습니다 ^^

(이 방법을 응용하면 클플을 우회할 수도 있는데 다음 기회에 설명 드리겠습니다.)

 



import requests
from selenium import webdriver

driver = webdriver.Chrome()
driver.get('URL')
cookies = driver.get_cookies()

s = requests.Session()
for cookie in cookies:    
    s.cookies.set(cookie['name'], cookie['value'])

 

반대로 Requests의 쿠키를 Selenium으로 보낼 수도 있습니다.

Javscript 렌더링이 필요할 때 주로 이 방법을 사용하겠죠 ^^

(Selenium을 사용하지 않더라도 Requests_HTML 모듈 등을 이용하여 렌더링을 할 수도 있습니다.)

 


import requests
from selenium import webdriver
 
s.get('URL')
driver = webdriver.Firefox()
driver.get('URL') # 이 부분이 들어가지 않으면 cookie-averse 에러가 발생합니다.
for c in s.cookies:
   driver.add_cookie({'name': c.name, 'value': c.value, 'path': c.path, 'expiry': c.expires})
driver.refresh()
추천
1

댓글 5개

@엑스엠엘 옙 ^^ 클릭하려는 요소를 찾은 후에 .click() 메서드를 이용하면 됩니다! :)
그럼 오늘도 좋은 하루 되세요~! ^-^
@Innisfree
크롤링할 때 좋은 수단이 될 수 있겠군요.
그럼 drag() 같은 것도 있겠군요. 더 나아가
console에서 간단한 자바스크립트 명령 한 줄 실행 기능도 가능할까요?
@엑스엠엘 옙 브라우저 자체를 제어하는 것이기 때문에 사람이 브라우저로 할 수 있는 행위는 대부분 흉내낼 수 있다고 생각하시면 됩니다 ^-^

1. Selenium에 .drag()라는 메서드는 없지만, 당연히 text를 따올 수 있고, Drag & Drop도 할 수 있습니다.
2. Javascript 명령을 실행하는 .executeScript()도 있습니다 :)
제가 만든 허접한 소스인데 Selenium에서 Javascript로 이런 것도 가능합니다!! ㅎㄷㄷ
https://studyforus.com/share/584148

그럼 저녁식사 맛있게 드세요~!
전체 5,124
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT