@@ -165,9 +165,12 @@ public void scrapeMenu(int page, Long placeId) {
165165 String currentDate = null ;
166166
167167 // 6. 분리된 블록을 순회하며 식단 데이터 추출
168- // 패턴: (조식|중식|석식) (.+?) - 내용물은 하이픈(-) 기준으로 분리됩니다.
168+ String regex = "(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침\\ (테이크아웃\\ )|천원의아침|중식\\ (한식반상\\ )|중식\\ (일품반상\\ )|중식 A|중식 B|중식)\\ s*(.*?)(?=\\ s*(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침\\ (테이크아웃\\ )|천원의아침|중식\\ (한식반상\\ )|중식\\ (일품반상\\ )|중식 A|중식 B|중식)\\ s*|$)" ;
169+ if (placeId == 9757 ) {
170+ regex = "(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침\\ (테이크아웃\\ )|천원의아침|중식\\ (한식반상\\ )|중식\\ (일품반상\\ )|중식 A|중식 B)\\ s*(.*?)(?=\\ s*(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침\\ (테이크아웃\\ )|천원의아침|중식\\ (한식반상\\ )|중식\\ (일품반상\\ )|중식 A|중식 B)\\ s*|$)" ;
171+ }
169172 Pattern menuItemsPattern = Pattern .compile (
170- "(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침 \\ (테이크아웃 \\ )|천원의아침|중식 \\ (한식반상 \\ )|중식 \\ (일품반상 \\ )|중식 A|중식 B|중식) \\ s*(.*?)(?= \\ s*(조식|석식|식사|요리|파스타/스테이크 코스|천원의밥상|천원의아침 \\ (테이크아웃 \\ )|천원의아침|중식 \\ (한식반상 \\ )|중식 \\ (일품반상 \\ )|중식 A|중식 B|중식) \\ s*|$)" ,
173+ regex ,
171174 Pattern .DOTALL
172175 );
173176
@@ -235,21 +238,17 @@ else if(placeId == 2490) {
235238
236239 CafeteriaMenu savedMenu = cafeteriaMenuRepository .findByDateAndKindAndPlaceId (date , kind , placeId );
237240
238- // 메뉴가 존재하는 경우
239- if (!content .equals (NO_MENU_INFO )) {
240-
241- // 메뉴가 추가된 경우
242- if (savedMenu == null ) {
243- // 학식 메뉴 저장
244- cafeteriaMenuRepository .save (new CafeteriaMenu (date , kind , content , placeId ));
245- }
246-
247- // 메뉴가 변경된 경우
248- else if (!savedMenu .getMenu ().equals (content )) {
249- savedMenu .setMenu (content );
250- }
241+ // 메뉴가 추가된 경우
242+ if (savedMenu == null ) {
243+ // 학식 메뉴 저장
244+ cafeteriaMenuRepository .save (new CafeteriaMenu (date , kind , content , placeId ));
245+ }
251246
247+ // 메뉴가 변경된 경우
248+ else if (!savedMenu .getMenu ().equals (content )) {
249+ savedMenu .setMenu (content );
252250 }
251+
253252 }
254253 }
255254 // 해당 날짜의 모든 메뉴를 추출했으므로 날짜를 초기화
0 commit comments