크롤링할 때, 예를 들어 검색창에 지정된 텍스트를 입력하도록 할 때, 입력 속도가 너무 빨라서 그런지 중간에 오타가 나거나 글자가 생략되는 경우가 있을 수 있습니다.
예를 들어, 아래는 네이버 검색창에 "안녕하세요! 디노랩스 블로그입니다. 언제든지 방문해주세요: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) #시간차 두기
따라서, 위 코드로 변경한 후 다시 실행해보면, 한 글자씩 천천히 입력되고, 오타나 생략된 글자가 생기지 않음을 확인할 수 있답니다.
'BLOG > 웹크롤링' 카테고리의 다른 글
[웹크롤링] 텍스트 크롤링 - '\n' 와 같이 불필요한 텍스트 없애기 (0) | 2021.03.19 |
---|---|
[웹크롤링] 이모티콘, 텍스트나 이미지로 변경해서 크롤링 하는 방법 (0) | 2021.03.19 |
[웹크롤링] 크롤링 수행 시간 측정하기 - time (0) | 2021.03.19 |
[웹크롤링] 이미지 크롤링해서 저장하는 방법 - urlib (0) | 2021.03.19 |
[웹크롤링] 네이버 - 연관 검색어 크롤링하기 (requests 사용) (0) | 2021.03.18 |