간단한 크롤러 구현

지우·2022년 8월 31일
0

개발

목록 보기
1/1

✔️주제

네이버에서 '날씨' 키워드 입력 후 검색 버튼을 클릭하는 과정을 자동화한 크롤러 구현


💡 셀레니움 (Selenium)

  • 다양한 브라우저/플랫폼에서 웹 응용 프로그램을 위한 오픈소스 자동화 테스트프레임워크
  • 웹 기반 어플리케이션 자동화에 중점
  • 하나의 도구가 아닌 소프트웨어의 모임
  • [명령->웹] 과정을 코드화하여 작동시킴 -> 크롤링에 활용

💡 사용법

  • 사용하려는 웹 드라이버를 import (크롬 드라이버 사용)
  • xpath 주소 등으로 특정 요소 접근 가능
  • 개발자 도구(f12)를 사용하여 웹 구성 요소의 주소 수집
  • ex) driver.find_element , BeautifulSoup

💡네이버 HTML

  • 키워드 입력창 element
<input id="query" name="query" type="text" 이하생략>

💡코드

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By

# Setting Chrome driver option
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

# Setting Chrome driver
driver = webdriver.Chrome('chromedriver 경로 작성')
driver.get('https://www.naver.com/')

# serch
search_xpath = '//*[@id="search_btn"]/span[2]'
input_box = driver.find_element('name', 'query')
input_box.send_keys('날씨')
search_box = driver.find_element(By.XPATH, search_xpath)
search_box.click()

💡구현

  1. 크롬 드라이버 임포트
  2. 크롤링할 네이버 메인 url 지정
  3. 검색 버튼의 xpath 를 copy하여 저장
  4. 입력창의 element 를 찾아 저장 후 키워드 입력
  5. xpath 를 이용하여 검색 버튼 클릭

💡구현 영상


💡느낀점

  • 크롤러를 마냥 어렵다고 생각하여 제대로 알아볼 생각을 하지 않았는데, 좋은 계기로 쉽게 만들어볼 수 있었다. 노베이스로 시작했다면 막막했을 텐데 주어진 코드를 사용해보고 분석한 뒤 응용하여 생성해 보았더니 훨씬 알기 쉽고 이해가 잘 되었다. 차근차근 복잡한 기능을 수행하는 크롤러를 구현해보고 싶어졌다.
profile
기록용

0개의 댓글