Python

[파이썬 크롤링] selenium을 이용해 크롤링하기3 (자바스크립트 사용)

NULL.. 2018. 2. 12. 06:00
반응형

이번에는 자바스크립트, 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 (데이터 가져오기)