본문 바로가기

BLOG/웹크롤링

[웹크롤링] 텍스트 입력 시 글자가 생략되거나 오타가 나는 문제, 해결 방법은?

크롤링할 때, 예를 들어 검색창에 지정된 텍스트를 입력하도록 할 때, 입력 속도가 너무 빨라서 그런지 중간에 오타가 나거나 글자가 생략되는 경우가 있을 수 있습니다.

 

예를 들어, 아래는 네이버 검색창에 "안녕하세요! 디노랩스 블로그입니다. 언제든지 방문해주세요:D" 라는 텍스트를 작성하는 코드인데요,

 

from bs4 import BeautifulSoup 
from selenium import webdriver 
import time

path = "c:/temp/chromedriver_240/chromedriver.exe"   ###chomedriver의 경로 위치
driver = webdriver.Chrome(path)
 
driver.get("http://naver.com") 
time.sleep(2) # 2초기달리기

element = driver.find_element_by_id("query") 
element.send_keys("안녕하세요! 디노랩스 블로그입니다. 언제든지 방문해주세요:D")

 

위 코드를 실행해보면 5번중에 한번 정도는 아래 이미지처럼 중간에 글자가 생략된 것을 볼 수 있었습니다.

 

 

이에 대한 해결책은 바로, 글자를 한 글자씩 입력할 때 시간차를 두는 것인데요, time 라이브러리를 사용하면 이를 구현할 수 있답니다.

 

아래 코드는 time 을 이용하여 한 글자씩 입력한 후, 0.3초의 시간차를 두는 코드입니다.

 

import time

keyword = "안녕하세요! 디노랩스 블로그입니다. 언제든지 방문해주세요:D"

for c in keyword :
    element.send_keys(c)  #한글자씩 입력
    time.sleep(0.3) #시간차 두기

 

따라서, 위 코드로 변경한 후 다시 실행해보면, 한 글자씩 천천히 입력되고, 오타나 생략된 글자가 생기지 않음을 확인할 수 있답니다.