이 글에서는 크롤링을 위한 VScode, miniconda 환경 세팅부터 Selenium, ChromDriver 자동관리 라이브러리 설치 방법까지 알아볼 것이다. 또한, 실습이 가능하도록 실제로 구글 스토어 댓글을 크롤링하는 코드를 제공한다.
파이썬 코딩을 할 때, 흔히 사용하는 Colab은 크롤링이 실제로 동작하는지 볼 수 없다. 반면 VScode에서는 이를 확인할 수 있다.다만 VScode에서는 .ipynb파일을 실행하려면 파이썬 에디터인 Jupyter Notebook이 필요하다. miniconda는 Jupyter Notebook과 파이썬에서 필요한 최소한의 라이브버리들, 그리고 가상환경을 관리할 수 있게 만들어진 툴이다. 따라서 환경세팅을 위해 VScode와 miniconda를 먼저 다운로드 받아야한다.
VScode, miniconda 다운로드
1. 컴퓨터 환경에 맞는 Visual Studio Code를 설치한다.
2.한글 팩은 Vscode의 extension 을 눌러 korean language pack을 검색한 후 설치한다.
3. 컴퓨터 환경에 맞춰 miniconda를 설치한다.
4. 시작 > anaconda prompt(miniconda3)를 실행한다.
5. python이 설치됐는지 확인한다. 버전이 뜨면 설치됐다는 뜻이다.
python --version
> Python 3.11.1
6. anaconda prompt(miniconda3) 에서 아래 명령어를 입력하여 miniconda 가상 환경을 생성한다.
# conda create -n [가상환경 이름] python=[원하는 파이썬 버전 i.e. 3.10.9]
conda create -n venv python=3.11.1

7. 가상환경에 접속하여 jupyter와 ipykernel을 설치한다.
# conda activate [가상환경 이름]
# pip install jupyter
# pip install ipykernel
# python -m ipykernel install --user --name [가상환경 이름] --display-name "[jupyter에 표시될 kernel의 이름]"
conda activate venv
pip install jupyter
pip install ipykernel
python -m ipykernel install --user --name venv --display-name "test"
8. VScode의 왼쪽 Extantion 메뉴에서 "Jupyter Notebook" 검색 후, 확장팩을 설치한다.
9. New 파일을 .ipynb로 생성하고, 코드를 실행하면 가상 환경을 선택하는 창이 뜬다. 만들어두었던 test 서버를 선택한다.
Selenium 및 ChromeDriver 설치
1. anaconda prompt(miniconda3)에서 Selenium 라이브러리를 설치한다.
pip install selenium
2. ChromeDriver 자동 관리 라이브러리를 설치한다.
pip install webdriver_manager
크롤링 예시 코드
아래 코드를 따라하면 구글 스토어에서 원하는 앱의 댓글들을 크롤링 할 수 있습니다. 코드에 대한 더 자세한 설명은 이 글을 참고하세요.
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import pandas as pd
# 크롬 드라이버 생성
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
# 구글 스토어 앱 검색
app_name = input("댓글을 가져올 앱 이름을 입력하세요")
url = "https://play.google.com/store/search?q={}&c=apps&hl=ko"
search_url = url.format(app_name)
driver.get(search_url)
# 댓글 클릭
driver.find_element(By.XPATH, '//*[@id="yDmH0d"]/c-wiz[2]/div/div/div[2]/div[2]/div/div[1]/div[1]/c-wiz[4]/section/header/div').click()
# 모달창 클릭 ( 목적: 스크롤을 하기 위해서)
driver.find_element(By.XPATH, '//*[@id="yDmH0d"]/c-wiz[2]/div/div/div[2]/div[2]/div/div[1]/div[1]/c-wiz[4]/section/header/div/div[2]').click()
# 스크롤 내리기
modal = driver.find_element(By.CLASS_NAME, 'fysCi')
for i in range(3):
driver.execute_script("arguments[0].scrollTo(0, arguments[0].scrollHeight)", modal)
time.sleep(3)
# 리뷰 작성자, 평점, 작성시간, 내용 가져오기
reviews = driver.find_elements(By.CLASS_NAME, 'RHo1pe')
data_list = []
# num_review = 0
for review in reviews:
# num_review += 1
# if num_review == 10:
# break
user_name = review.find_element(By.CLASS_NAME, 'X5PpBb').text # 유저 이름
# print(user_name)
rating = review.find_element(By.CLASS_NAME, 'iXRFPc').get_attribute('aria-label')[10] #평점
# print(rating)
review_time = review.find_element(By.CLASS_NAME, 'bp9Aid').text # 댓글 작성 시간
# print(review_time)
comment = review.find_element(By.CLASS_NAME, 'h3YV2d').text # 댓글 내용
# print(comment)
data = {
"댓글 작성자" : user_name,
"평점" : rating,
"댓글 작성시간" : review_time,
"댓글 내용" : comment
}
data_list.append(data)
# 파일 csv형태로 저장
df = pd.DataFrame(data_list)
df.to_csv("./google_store.csv", encoding="utf-8-sig") #csv파일 저장
'파이썬' 카테고리의 다른 글
윈도우 작업스케줄러로 파이썬 파일 자동화시키는 방법 3가지 (1) | 2024.03.10 |
---|---|
퍼스트파티 DB → 파이썬 → 구글 시트 → 슬랙 연결 자동화 방법 (3) | 2024.02.03 |
[프로그래머스] 진료순서 정하기 - 파이썬(index함수) (0) | 2023.06.15 |
[프로그래머스] 피자나눠먹기(2) - 파이썬(최대공약수, 최소공배수) (1) | 2023.06.08 |
[프로그래머스] 최빈값 구하기 - 파이썬(Counter) (0) | 2023.06.08 |
댓글