끄적이는 기록일지

11. [파이썬] 웹데이터 수집 자동화 - 웹 크롤링(2) 본문

파이썬

11. [파이썬] 웹데이터 수집 자동화 - 웹 크롤링(2)

시시나브로 2021. 7. 6. 00:15
728x90
 

11. [파이썬] 웹데이터 수집 자동화(크롬버전 확인, 크롬드라이버 설치)(1)

10. [파이썬] 예외처리 사용하기 1. 예외처리 try : 예외가 발생할 문장 except 예외 종류 : 발생하면 실행할 문장 else : 발생하지 않을 때 실행할 문장 2. ValueError 에러 #예외처리 예제1 #정상적인 경우

kcy51156.tistory.com

 

이전 포스팅을 이어서 진행하도록 하겠습니다.

4. 검색창에 검색어를 입력해 자동으로 검색하는 기능을 구현하기

1) 먼저 검색할 사이트를 정합니다. (RISS(리스,학술연구정보서비스)http://www.riss.kr/)

 

2) VS Code를 열어 폴더에 새파일(riss.py)를 생성해줍니다.

 

3) 웹 데이터 수집을 자동화하기 위해선 그 페이지의 요소들을 알아야하는데 F12(개발자 도구)를 누르면 요소들을 알 수 있는 창이 나타나게 됩니다.

 

4) 이렇게만 보면 어떤 요소가 어디있는 건지 알아보기 쉽지 않기 때문에 왼쪽 상단에 있는 아이콘을 눌러 원하는 요소를 빠르게 찾을 수 있게 됩니다.

우리는 검색창의 요소가 궁금하기 때문에 마우스를 검색창에 가져가면 요소이름이 "query"라는 것을 확인할 수 있습니다.

 

5) 다시 VS Code로 돌아와 자동화하는 코드를 작성해줍니다.

#riss.kr에서 특정 키워드로 논문/학술 자료 검색하기
#step1. 필요한 모듈 불러오기

from selenium import webdriver
import time

#step2. 사용자에게 검색 관련 정보들을 입력받기
print("="*100)
print("이 크롤러는 RISS사이트의 논문 및 학술자료 수집용 웹크롤러입니다.")
print("="*100)

query_txt = input('1.수집할 자료의 키워드는 무엇입니까?(여러 개일 경우 ,로 구분하여 입력):')
print("\n")

#strp3.크롬 드라이버 설정 및 웹 페이지 열기
chrome_path = "c:/py_temp2/chromedriver_91.exe" 
#웹드라이버는 크롬브라우저 사용했고 그 권한을 driver에 넘겨준다
driver = webdriver.Chrome(chrome_path)

url = "http://www.riss.kr/"
driver.get(url)
#웹사이트가 너무 빨리 넘어가면 
#웹사이트가 열리기도 전에 실행되는 경우가 있어 2초 쉬어준다.
time.sleep(2)

# 창을 최대 크기로 변경
driver.maximize_window()
time.sleep(2)

#step4. 자동으로 검색어 입력 후 조회하기
# query를 찾아 클릭하라고 명령한다.
element = driver.find_element_by_id("query")
#웹 페이지 특정요소 접근할 때 사용하는 방식
driver.find_element_by_id("query").click()
element.send_keys(query_txt + "\n")

 

6) 이제 실행을 해보면 "수집할 자료의 키워드는 무엇입니까"라는 입력창이 나오고 원하는 키워드를 입력하면 다음과 같은 창이 자동으로 실행되는 걸 볼 수 있습니다.

 

 

728x90
Comments