본문 바로가기
Python/Python | 웹 크롤링(Web Crawling)

[Python] 웹 화면 축소하기 (모바일 스크롤 대안)

by 카랑현석 2024. 2. 15.

문제 상황

인스타그램에서 댓글 정보를 크롤링하는 프로그램을 만들어보려고 했다.

댓글 n개 모두 보기 버튼이 없다.

위 이미지 처럼 '댓글 n개 모두 보기' 버튼이 한 화면에 담기지 않아 해당 element을 찾아 클릭을 할 수가 없었다.

이를 해결하기 위해 스크롤을 하려고 했었으나, 현재 모바일 버전으로 접근했기 때문에

driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)

 

코드와 같이 END키로 내리게 할 수가 없었다. (컴퓨터가 아니기 때문이다.)

문제 원인

driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)


평소(PC 크롤링) 같으면 위 코드로 해결했겠지만, 모바일로 접속했으므로 END 키가 먹히지 않을 뿐더러 저렇게 하는 것도 부자연스럽다.

문제 해결

자바스크립트를 이용하여 브라우저를 축소한다.

자바스크립트에서는 document.body.style.zoom 으로 브라우저의 크기를 조절할 수 있었다.

이를 축소하면 버튼이 화면에 보일 것이고 원하는대로 클릭도 가능할 것이다.

 

document.body.style.zoom='60%' 결과 (댓글 470개 모두 보기)가 보인다!


Python을 이용해서 document.body.style.zoom='60%' 명령을 내리려면 아래와 같은 코드를 작성하면 된다.

driver.execute_script("document.body.style.zoom='60%'")

 

여기서 주의해야 할 점은 XPATH가 달라질 수 있다는 점에 유의해야 한다. 브라우저 크기를 60%로 바꿨다면 XPATH도 그 버전에 맞게 바꿔주어야 문제 없이 element을 가져올 것이다.