웹 크롤링 부분
*웹 크롤링: 인터넷 페이지에서 원하는 부분을 복사해서 가져오는 일입니다. 제 탐구의 경우에는 각 이미지에 딸린 제목을 복사해서 가져옵니다. 10개 20개 정도는 손으로 복사 붙여넣기 하는 편이 빠르지만, 수백 개 결과를 제 손으로 복사 붙여넣기 하기는 어렵습니다.
**Python 언어를 사용한 웹 크롤링 툴을 만듭니다. Python 언어를 안다는 전제 하에 간단한 설명만 덧붙였습니다.
#외부 라이브러리 받아오기
from tqdm import tqdm #진행상황 표시
import time #자동 딜레이
#딜레이하지 않으면 웹사이트로부터 크롤링 요청을 차단당할 위험이 있음
from selenium import webdriver #셀레늄 - BeautifulSoup를 더 많이 이용하지만 구글이나 유튜브 등 일부 사이트는 BeautifulSoup를 이용한 크롤링을 막아놓음
from bs4 import BeautifulSoup #파싱을 위해 필요
from selenium.webdriver.common.keys import Keys #셀레늄을 통해 페이지 스크롤을 내리기 위한 라이브러리
#크롤링 범위
title_nums=range(0,100)
#리스트
Title_list=[]
#페이지 열기
Street_url='https://www.google.com/search?q=%EA%B8%B8%EA%B1%B0%EB%A6%AC&sxsrf=ALeKk02aSNoUZ0Pv8aT0oIQ4A5KUgSwkzA:1589460116430&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiZh_-ssLPpAhUCZt4KHYmfAIgQ_AUoAXoECAsQAw&biw=1707&bih=907&dpr=1.5'
driver=webdriver.Chrome()
driver.get(Street_url)
#스크롤 내리기
body = driver.find_element_by_css_selector('body')
for i in range(10):
body.send_keys(Keys.PAGE_DOWN)
time.sleep(1)
#파싱: 크롤링한 데이터를 Python 언어로 처리하기 쉽게 다듬는 과정
source=driver.page_source
bs=BeautifulSoup(source, 'html.parser')
data=bs.select('div.WGvvNb')
L=list(data)
#크롤링
trial=0
for title in tqdm(title_nums): #title_nums(크롤링할 제목의 개수)는 맨 앞에서 정의함, 이것을 조정해서 크롤링 범위를 정할 수 있음
each_title=L[trial].text
time.sleep(1)
Title_list.append(each_title)
trial=trial+1
if trial>len(L):
break
print(Title_list) #어떤 제목들이 있나 출력하게 만들지만 꼭 필요한 코드는 아님