[머신러닝] 공모전 추천 시스템(1) - 코랩/설치 라이브러리

2024. 8. 29. 19:16데이터 사이언스

캠퍼스픽에 소개된 공모전에 대한 추천 시스템을 만들어보도록 하겠습니다.
먼저, 구글 코랩에서 공모전 추천 시스템에 필요한 라이브러리들을 설치하도록 합니다.

구글 코랩에서 사용할 경우,
파이참 등에서 사용할 때와 설치방법이 다를 수 있으니 주의해 주세요!

 

 

!pip install selenium
!apt-get update

# (최초 1회)
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver '/content/drive/MyDrive/Colab Notebooks' #
!pip install chromedriver-autoinstaller

 

!pip install selenium
  • Python에서 웹 브라우저 자동화를 수행하는 Selenium 라이브러리
  • Selenium은 웹 페이지와 상호작용하고 데이터를 수집하는 데 사용
!apt-get update
  • Ubuntu 또는 Debian 기반의 리눅스 시스템에서 패키지 목록을 업데이트
  • 이 명령은 시스템이 최신 패키지 목록을 사용하도록 업데이트하는 역할
!apt install chromium-chromedriver
  • Chromium 브라우저와 관련된 ChromeDriver를 설치
  • ChromeDriver는 Selenium이 Chrome 또는 Chromium 브라우저를 제어할 수 있도록 해주는 드라이버
  • 이 명령은 리눅스 환경에서 Chromium 및 ChromeDriver를 설치
!cp /usr/lib/chromium-browser/chromedriver '/content/drive/MyDrive/Colab Notebooks'
  • 설치된 ChromeDriver를 Google Colab의 특정 디렉토리(사용자 드라이브)로 복사합
  • 이 작업은 Colab에서 ChromeDriver를 사용할 수 있도록 설정하는 과정
!pip install chromedriver-autoinstaller
  • chromedriver-autoinstaller 패키지를 설치
  • 이 패키지는 사용자가 설치한 Chrome 브라우저의 버전에 맞는 ChromeDriver를 자동으로 다운로드하고 설치

 

!python --version

import selenium
print(selenium.__version__)
Python과 Selenium의 버전 확인

import os
import sys
import time
import re
import requests
import pandas as pd
import numpy as np
from urllib.parse import urljoin
from urllib.request import urlretrieve
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException
import openpyxl
import chromedriver_autoinstaller  # 자동으로 크롬 드라이버 설치 및 설정
from summa import summarizer  # 텍스트 요약 라이브러리
chrome_path = "/content/drive/MyDrive/Colab Notebooks/chromedriver"

sys.path.insert(0,chrome_path)
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless') # ensure GUI is off
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') # 한국어
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36')

chromedriver_autoinstaller.install()  # set the target URL

 

chrome_path = "/content/drive/MyDrive/Colab Notebooks/chromedriver" 
  • ChromeDriver의 경로를 지정
  • 이 경로는 사용자가 이전에 chromedriver를 설치하고 복사한 위치
sys.path.insert(0,chrome_path)
  • Python의 sys.path에 ChromeDriver의 경로를 추가
chrome_options = webdriver.ChromeOptions()
  • Chrome 브라우저의 옵션을 설정할 수 있는 객체를 생성
  • 이 객체에 여러 옵션을 추가하여 Chrome의 동작 방식을 지정 가능
chrome_options.add_argument('--headless')
  • 브라우저를 헤드리스 모드로 실행
  • 헤드리스 모드는 브라우저의 GUI 없이 백그라운드에서 실행되도록 설정
  • 주로 서버 환경이나 Colab과 같은 GUI가 없는 환경에서 사용
chrome_options.add_argument('--no-sandbox')
  • Chrome의 샌드박스 모드를 비활성화 - 샌드박스는 보안 기능인데, 일부 환경에서는 이 기능을 비활성화해야 함
chrome_options.add_argument('--disable-dev-shm-usage')
  • /dev/shm(공유 메모리) 사용을 비활성화 -  이 옵션은 메모리가 제한된 환경에서 안정성을 높이기 위해 사용됨
chrome_options.add_argument('lang=ko_KR')
  • 브라우저의 기본 언어를 한국어로 설정 -  한국어로 된 웹사이트를 방문할 때 유용
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'):
  • 브라우저의 User-Agent를 설정
  • User-Agent는 웹 서버에 보내는 브라우저의 정
  • 특정 사이트가 브라우저를 인식하고 다르게 응답하도록 하는 데 사용
chromedriver_autoinstaller.install()
  • chromedriver-autoinstaller를 사용하여 ChromeDriver를 자동으로 설치
  • 이 설치 과정에서는 사용 중인 Chrome 브라우저 버전에 맞는 ChromeDriver가 다운로드되고 설치됨