UP/IT

colab 으로 파이썬 크롤링 쉽게 실행하기

해티:) 2024. 10. 13. 10:44
개요

얼마 전 예전 직장 동료가 크롤링으로 데이터를 좀 얻어야하는데 노가다 할 생각을 하니 막막하다고 도움을 요청해왔다.

동료의 컴퓨터에 하나 하나 환경 세팅을 하기에는 귀찮아서 쉽게 알려줄 방법 없을까 하다가 찾아낸 colab!

(사실 나도 Java 개발자라.... Python 세팅이 안되어 있었다. )

웹 브라우저에서 Python 코드를 작성하고 실행할 수 있게 해주는 colab!

너무 너무 유용한 것 같아서 기록해 본다.

colab 으로 파이썬 크롤링 실행하기

 

1. 일단 구글 드라이브에 content 폴더 안에 drive 폴더를 만들고 크롬드라이버를 다운로드 해놓는 작업이 선행 되어야한다.

# 1. 구글 드라이브 연결
from google.colab import drive
drive.mount('/content/drive')

# 2. selenium 및 크롤링을 위한 라이브러리 다운로드
!pip install selenium
!apt-get update
!apt install chromium-chromedriver
# !cp /usr/lib/chromium-browser/chromedriver '/content/drive/MyDrive/Colab Notebooks' # (최초 1회)
!pip install chromedriver-autoinstaller

# 3. 설치 확인
!python --version
import selenium
print(selenium.__version__)

# 4. 사용할 라이브러리들 import
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import sys
from selenium.webdriver.common.keys import Keys
import urllib.request
import os
from urllib.request import urlretrieve
from collections import defaultdict

from datetime import datetime, timedelta
import time
import pandas as pd
import chromedriver_autoinstaller  # setup chrome options

# 5. 크롬드라이버 경로 지정
chrome_path = "/content/drive/MyDrive/Colab Notebooks/chromedriver"

# 6. 크롬드라이버 설정
sys.path.insert(0,chrome_path)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless') # ensure GUI is off : cloab은 새창을 지원하지않기 때문에 창 없는 모드
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')  # set path to chromedriver as per your configuration
chrome_options.add_argument('lang=ko_KR') # 한국어

chromedriver_autoinstaller.install()  # set the target URL


# 7. 크롤링하기
# WebDriver 설정
driver = webdriver.Chrome(options=chrome_options)


# URL 열기
url = "https://www.naver.com"
driver.get(url)

# 페이지 로딩을 기다리기 위해 잠시 대기
time.sleep(5)  # 필요에 따라 대기 시간을 조정

# 페이지 제목 출력
print("페이지 제목:", driver.title)

# 페이지가 아이프레임 일때
driver.switch_to.frame("아이프레임 이름")


# 드라이버 종료
driver.quit()
레퍼런스

감사하게도 아래 링크에서 제가 딱 원하는 글을 발견하고 도움받았습니다.

출처를 남깁니다.

https://velog.io/@kite_day/colab-%EC%97%90%EC%84%9C-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%A7%81%ED%95%98%EA%B8%B0-selenium