가져올 파이썬 모듈
크롤링 하기 위한 환경 만들기
!pip install selenium
페이지 html 분석하기
Python 코드 작성하기
def naver_crawling_csv():
# selenium 라이브러리에서 필요한 모듈 가져오기
from selenium import webdriver # selenium 라이브러리에서 webdriver 모듈을 가져옴
from selenium.webdriver.common.by import By # selenium 라이브러리에서 By 모듈을 가져옴
from selenium.webdriver.common.keys import Keys # selenium 라이브러리에서 Keys 모듈을 가져옴
# time, csv 모듈을 가져옴
import time
import csv
# 1. 크롬 브라우저를 실행, 네이버 홈페이지를 열어 네이버 쇼핑 페이지로 이동
brower = webdriver.Chrome('C:/chromedriver.exe')
brower.get('https://www.naver.com')
brower.implicitly_wait(10)
brower.find_element(By.CSS_SELECTOR, 'a.nav.shop').click()
time.sleep(2) # 2초간 대기
# 2. 검색창 찾고 검색창 클릭
search = brower.find_element(By.CSS_SELECTOR, 'input._searchInput_search_text_3CUDs')
search.click()
# 3. 검색어 입력
search.send_keys("k2 비숑 리버서블")
search.send_keys(Keys.RETURN)
prev_height = brower.execute_script("return document.body.scrollHeight")
# 무한 스크롤 : 현재높이와 끝의 높이가 끝이면 탈출
while True:
brower.execute_script("window.scrollTo(0,document.body.scrollHeight)")
time.sleep(2) # 2초간 대기
# 현재높이 저장
current_height = brower.execute_script("return document.body.scrollHeight")
# 현재높이와 끝의 높이가 끝이면 탈출
if current_height == prev_height:
break
# 업데이트해줘서 끝낼 수 있도록
prev_height = current_height
# 4. 파일 열고 csv 파일 쓰기
f = open(r"D:\chy202212\python_ws\startcoding_crawling\naver_shopping_crawling\data.csv", "w", encoding="CP949", newline="")
csvWriter = csv.writer(f)
# 5. 상품 정보 영역 태그 찾고 순서대로 변수에 담기
items = brower.find_elements(By.CSS_SELECTOR, '.basicList_info_area__TWvzp')
# for문 : 상품이름, 가격, 상세페이지 주소를 순서대로 보여주고 csv 파일 저장
for item in items:
try:
name = item.find_element(By.CSS_SELECTOR, '.basicList_title__VfX3c').text # 상품 이름 태그.
price = item.find_element(By.CSS_SELECTOR, '.price_num__S2p_v').text # 상품 가격 태그
link = item.find_element(By.CSS_SELECTOR, '.basicList_title__VfX3c > a').get_attribute('href') # 상품 링크 찾기
print(name, price, link)
csvWriter.writerow([name, price, link])
except Exception as e:
print(e)
# 파일 닫기
f.close()
Reference