[ 동적 크롤링 ]
동적 크롤링은 데이터를 즉시 수집하기 못하기 때문에 데이터를 수집하기 위한 과정이 매우 중요.
* id는 한 웹 페이지 내에서 유일한 선택자 이므로 크롤링을 할 때 메우 유용하게 사용됨
find_element_by_css_selector
find_element_by_css_selector 함수는 인자로 태그와 선택자의 조합을 받고 해당 HTML 요소를 리턴해준다.
find_element_by_css_selector(" 태그#선택자값 ")
send_keys
send_keys 함수는 HTML 요소에 데이터를 전송하는 함수이다. HTML 요소에 메소드로 사용하고,
인자로 전송할 값을 넣어준다.
[ selenium의 HTML요소 ].send_keys(" 전송할 값 ")
click
click 함수는 HTML 요소를 클릭해주는 함수이다.
[ selenium의 HTML요소 ].click()
동적 크롤링 코드 작성하기
# 라이브러리 불러오기
from selenium import webdriver
import time
# 웹 드라이버 불러오기
driver = webdriver.Chrome('./chromedriver')
URL = 'https://papago.naver.com/'
driver.get(URL) #get 함수를 이용해서 웹 사이트의 내용 받아오기
time.sleep(10) #time 라이브러리의 sleep 함수를 사용해서 지연시간 주기
word = input("번역하고 싶은 단어 입력 : ")
#find_element_by_css_selector함수는 해당 HTML 요소를 리턴
form = driver.find_element_by_css_selector("textarea#txtSource")
#send_keys 함수를 사용해서 HTML 요소에 데이터를 전송
form.send_keys(word)
#find_element_by_css_selector함수는 해당 HTML 요소인 button을 리턴
button = driver.find_element_by_css_selector("button#btnTranslate")
#click 함수를 이용해서 HTML 요소를 클릭
button.click()
#버튼을 누르고 나서 시간 지연 넣어주기
time.sleep(2)
#find_element_by_css_selector함수는 해당 HTML 요소인 결과값 div를 리턴
result = driver.find_element_by_css_selector("div#txtTarget")
print(word, "->", result.text)
driver.close()
[ 11일차 문제 ]

# 라이브러리 불러오기
from selenium import webdriver
import time
# 웹 드라이버 불러오기
driver = webdriver.Chrome('./chromedriver')
URL = 'https://papago.naver.com/'
driver.get(URL) #get 함수를 이용해서 웹 사이트의 내용 받아오기
time.sleep(10) #time 라이브러리의 sleep 함수를 사용해서 지연시간 주기
my_dict = dict()
while True :
word = input("번역하고 싶은 단어 입력 ( 0 입력시 종료 ) : ")
if word == '0' :
break
#find_element_by_css_selector함수는 해당 HTML 요소를 리턴
form = driver.find_element_by_css_selector("textarea#txtSource")
#send_keys 함수를 사용해서 HTML 요소에 데이터를 전송
form.send_keys(word)
#find_element_by_css_selector함수는 해당 HTML 요소인 button을 리턴
button = driver.find_element_by_css_selector("button#btnTranslate")
#click 함수를 이용해서 HTML 요소를 클릭
button.click()
#버튼을 누르고 나서 시간 지연 넣어주기
time.sleep(2)
#find_element_by_css_selector함수는 해당 HTML 요소인 결과값 div를 리턴
result = driver.find_element_by_css_selector("div#txtTarget")
my_dict[word] = result.text
# HTML 요소를 초기화
form.clear()
print(my_dict)
driver.close()

저작권 출처 : https://cafe.naver.com/codeuniv
코딩 커뮤니티 - 코뮤니티 [파이썬/... : 네이버 카페
코뮤니티 [코딩공부/독학/스터디/대외활동] : python, C언어, java, 자바스크립트, HTML, CSS, 웹/앱개발
cafe.naver.com
'DATA > [ 모각코+ 12월 과정 ] 웹 크롤링' 카테고리의 다른 글
| [ 모각코+ 13일차 ] CSV 파일 동적 크롤링하기 (0) | 2022.01.06 |
|---|---|
| [ 모각코+ 12일차 ] CSV 파일 (0) | 2022.01.05 |
| [ 모각코+ 10일차 ] 동적 크롤링 사용해보기 ① (0) | 2022.01.01 |
| [ 모각코+ 9일차 ] 정적 크롤링 사용해보기 ④ (0) | 2021.12.30 |
| [ 모각코+ 8일차 ] 정적 크롤링 사용해보기 ③ (0) | 2021.12.29 |