쿠팡 리뷰 크롤링 파이썬 - kupang libyu keulolling paisseon

[웹크롤링]_Selenium활용 쿠팡리뷰 크롤링 하는 Python 코드짜기(Step01)

쿠팡 리뷰 크롤링 파이썬 - kupang libyu keulolling paisseon
hellong2021. 1. 15. 0:44

#웹크롤링 #파이썬크롤링 #셀레늄 #PythonSelenium #리뷰데이터크롤링

(이번에 활용한 coupang 사이트의 메인화면)

머신러닝, 세부적으로 추천시스템 모델링 작업을 위해 데이터를 가져오는

작업이 필수적이다.

데이터를 확보할 수 있는 방법 중에서 쉽게 접할 수 있는 웹 브라우저 내에서 크롤러를 만들어서 리뷰 데이터를 크롤링 하는 것이 있다.

결론적으로, 추천시스템 모델링에 초반 작업이라 할 수 있는 데이터 크롤링을 쿠팡 사이트 내에서 진행해본 코드를 공유해보려고 한다.

주요 라이브러리:

파이썬을 활용한 크롤링 작업에서 자주 사용되는 셀리니엄 라이브러리를 중점적으로 다루고 활용해볼 것이다.

파이썬 내에서 기본적인 데이터 셋 구축에 필요한 판다스 라이브러리를 사용했다.

크롤링 코드 구현 전 준비사항:

먼저 필요한 라이브러리를 cmd 실행창에 install을 완료해주어야 한다.

다음 셀리늄 라이브러리에서 작동에 필요한 구글드라이버 설치작업이 필수적이다.

참고사항:

코드작성은 Jupyter Notebook을 사용하여 각 코드 라인마다 Run을 하고 결과값을 바로 확인해주었다.

line1

pwd import sys import os import pandas as pd import numpy as np from bs4 import BeautifulSoup from selenium import webdriver import time from tqdm import tqdm_notebook import warnings ; warnings.filterwarnings(action='ignore')

line1에서는 pwd를 적어주면서 현재 작업이 어느 경로에서 진행되는 지 확인해주었다.

(경로 확인하는 이유: 드라이버 작동과 엑셀작업 파일을 저장, 업로드할 때 현재 위치하는 상대주소를 사용하도록 체크한다. 경로가 다르다면 현재 코드 저장위치와 동일하게 설정해주어야 한다.)

이후 코드라인에서는 필요한 라이브러리를 import 해주었고 이때 코드실행에 오류가 있다면 설치가 안된 라이브러리를 찾아 따로 설치작업을 진행해주자

line2

driver=webdriver.Chrome("chromedriver.exe") driver.get('https://www.coupang.com/') time.sleep(3) query_text='에어팟프로' element=driver.find_element_by_css_selector('#headerSearchKeyword') # headerSearchKeyword : 검색창 ID element.send_keys(query_text) element.submit() time.sleep(1)

line2에서는 셀레늄 패키지로 웹 자동화를 해주기 위해 driver를 설정해주고, 제어작업을 진행할 주소를 get메소드 활용하여 불러온다.

driver.get(' 웹 크롤링 진행할 웹 주소')

이후 query_text에 검색할 키워드를 변수저장해주고, 검색창 아이디 headerSearchKeyword에 해당 변수값을 send해주고 검색버튼이 실행되도록 submit을 작성해준다.

이때 자동화 제어마다 걸리는 시간을 고려하여 time.sleep(초)로 잡아주어야 전체 작업이 완벽하게 수행되게 된다.

line3

urls=driver.find_elements_by_css_selector(".search-product-link") url_list=[] for url in urls: url=url.get_attribute('href') url_list.append(url) print(len(url_list)) url_list

line3에서는 검색창에 query_text(에어팟프로)를 입력해서 결과창을 반환했을 때, 뜨는 상품별 url주소를 리스트에 담아 반환하도록 구현한 것이다.

css_selector에서 .search-product-link는 url주소를 가진 href 속성을 포함하는 태그를 찾고 해당 태그에서의 class값을 적어준 것이다.

주의할 점은, 해당 클래스가 활성화된 창에 여러개의 element로 존재하니 find_elements인 복수로 써준 메소드를 사용해주어야 한다.

따라서 for문 내에서 iterator로 사용하고 각각의 url을 꺼내와 url_list에 append작업을 진행해주면 된다.

쿠팡에서 한페이지내에 url주소는 36개를 반환한다.

print(len(url_list))=>36

line4

tmp=pd.DataFrame({'url':url_list}) tmp.head(10) tmp.to_excel('coupang_url_airpods.xlsx') url_load=pd.read_excel("coupang_url_airpods.xlsx",engine='openpyxl') num_list=len(url_load) print(num_list) url_load.head()

line4에서는 pandas dataframe을 활용해서 데이터 프레임을 만들고 데이터를 저장해주는 코드를 작성하였다.

pd로 pandas를 치환하여 사용하고 있으며, dataframe을 tmp라는 이름으로 설정해주었다.

pd.DataFrame({'속성명':values})

=pandas.DataFrame({'url':url_list})

해당 프레임에서는 head메소드로 데이터 중 윗부분 5개의 데이터를 추려 확인할 수 있도록 해준다.

쿠팡 리뷰 크롤링 파이썬 - kupang libyu keulolling paisseon