[파이썬 크롤링] selenium을 이용해 크롤링하기3 (자바스크립트 사용)
이번에는 자바스크립트, Jquery 코드를 실행시키는 방법을 알아보자.
페이지에서 버튼을 클릭해서 다른 페이지로 이동한다던가,
데이터 수집 중 불필요한 값을 제거 후 가져온다던가,
스크립트를 이용해 리턴값을 받는 일 등에 사용할 수 있다.
먼저 자바스크립트 사용 방법부터 알아보자.
execute_script 함수를 사용하면 자바스크립트 코드를 실행시킬 수 있다.
사용 방법은 아래와 같다.
driver.execute_script('스크립트', '파라미터')
스크립트 부분에 'return 스크립트'를 이용하면 리턴값을 받을 수 있고,
argument[0]를 이용하면 find_~ 함수로 찾은 객체를 파라미터 부분에 넣어클릭 등의 액션을 줄 수도 있다.
실제 작동하는 코드를 작성해보자.
from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe') driver.execute_script("alert('자바스크립트 코드 적용!!');")
# 코드 해석
3. 크롬 드라이버 로드
4. 자바스크립트 코드 실행 ( alert 띄우기 )
잘 작성했다면 크롬이 실행된 후 alert이 하나 뜰 것이다.
다음은 Jquery를 적용하는 방법이다.
사용 방법은 자바스크립트와 마찬가지로 execute_script 함수를 사용하면 된다.
스크립트 부분에 Jquery 코드를 작성하면 잘 동작하지만 사이트에 따라 Jquery 코드가 작동하지 않는 경우가 있는데, 이럴 때에는 Jquery 코드를 적용 후 사용하면 된다.
from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe') f = open('jquery-3.2.1.min.js', 'r') driver.execute_script(f.read()) f.close(); driver.execute_script('스크립트', '파라미터')
# 코드 해석
3. 크롬 드라이버 로드
5. Jquery 파일 읽음
6. 드라이버에 적용
7. 파일 객체를 닫음
이렇게 하면 Jquery 코드를 사용할 수 있다.
다만 get 함수를 이용해 새 페이지로 이동하면 당연하게도 코드가 바뀌기 때문에 다시 Jquery를 읽어들여야 한다.
2018/02/11 - [Python] - [파이썬 크롤링] selenium을 이용해 크롤링하기1 (크롬 실행)
2018/02/11 - [Python] - [파이썬 크롤링] selenium을 이용해 크롤링하기2 (데이터 가져오기)