55from selenium import webdriver
66from selenium .webdriver .chrome .service import Service
77from webdriver_manager .chrome import ChromeDriverManager
8+ import sys
89
9- def scrape_oliveyoung_products ( max_items = 10 ):
10+ def _build_chrome_driver ( ):
1011 # Chrome config
11- chrome_options = webdriver .ChromeOptions ()
12- chrome_options .add_argument ("--headless" )
13- chrome_options .add_argument ("--no-sandbox" )
14- chrome_options .add_argument ("--disable-dev-shm-usage" )
15- chrome_options .add_argument ("--disable-gpu" )
16- chrome_options .add_argument (
17- "user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
12+ options = webdriver .ChromeOptions ()
13+ options .add_argument ("--headless=new" )
14+ options .add_argument ("--no-sandbox" )
15+ options .add_argument ("--disable-dev-shm-usage" )
16+ options .add_argument ("--disable-gpu" )
17+ options .add_argument (
18+ "user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
19+ "(KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
1820 )
1921
20- # Browser 시작
21- driver = webdriver .Chrome (service = Service (ChromeDriverManager ().install ()), options = chrome_options )
22+ # Linux (Ubuntu) 배포 서버
23+ if sys .platform .startswith ("linux" ):
24+ options .binary_location = "/usr/bin/chromium-browser"
25+ service = Service ("/usr/bin/chromedriver" )
26+
27+ return webdriver .Chrome (service = service , options = options )
28+
29+ # macOS/Windows or fallback -> use webdriver_manager
30+ return webdriver .Chrome (service = Service (ChromeDriverManager ().install ()), options = options )
31+
32+ def scrape_oliveyoung_products (max_items = 10 ):
33+ driver = _build_chrome_driver ()
2234 products = []
2335
2436 try :
@@ -33,7 +45,6 @@ def scrape_oliveyoung_products(max_items=10):
3345 wait .until (EC .presence_of_element_located ((By .CSS_SELECTOR , "ul.cate_prd_list" )))
3446 items = driver .find_elements (By .CSS_SELECTOR , "ul.cate_prd_list li" ) #all <li>
3547
36- # Hard cap at max_items
3748 for item in items [:max_items ]:
3849 try :
3950 # 제품 정보
0 commit comments