Skip to content

Commit d130ea4

Browse files
committed
[bug] 추천 제품 로직 배포 서버 chrome로딩 에러 수정
1 parent d9331b7 commit d130ea4

2 files changed

Lines changed: 23 additions & 12 deletions

File tree

moodico/products/utils/scraper.py

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,32 @@
55
from selenium import webdriver
66
from selenium.webdriver.chrome.service import Service
77
from 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
# 제품 정보

moodico/recommendation/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def get_recommendation_list(force_refresh=False):
5050
return cached
5151

5252
def my_item_recommendation(request):
53-
# 자발적으로 확인 하고 싶을때: /upload/?refresh=1
53+
# 자발적으로 확인 하고 싶을때: /?refresh=1
5454
force = request.GET.get("refresh") == "1"
5555
data = get_recommendation_list(force_refresh=force)
5656

0 commit comments

Comments
 (0)