Skip to content

Conversation

@GoBeromsu
Copy link
Contributor

기존 플러그인이 HTML 파싱을 기반으로 YES24 도서 URL을 추출했으나, YES24 검색 페이지 변경으로 더 이상 동작하지 않아 API 기반 방식으로 전환했습니다.

🔍 문제 원인

  • 기존 구현은 다음 흐름을 따랐습니다:
  • 검색어를 포함한 검색 페이지에 요청 → 응답 HTML 파싱 → CSS Selector로 URL 추출
  • 그러나 현재 YES24 검색 페이지는 CSR 방식으로 구성되어 있어, 서버 응답 HTML은 빈 템플릿 상태
  • 이에 따라 querySelector(...).getAttribute(...) 호출 시 null 에러가 발생하고, 더 이상 URL 추출이 불가능해졌습니다.

✅ 변경 사항

  • YES24 내부 검색 API인 /Product/searchapi/bulletsearch/goods?query=...를 직접 호출
  • 이 API는 검색어 입력 시 사용되는 autocomplete용 endpoint이며, 도서의 GOODS_NO(고유 ID)를 포함함
  • 도서 상세 페이지는 https://www.yes24.com/Product/Goods/{GOODS_NO} 형식이므로, 이 ID만 있으면 URL 생성 가능
  • HTML 파싱 및 CSS Selector 제거 → JSON 파싱 방식으로 변경

기타

  • YES24의 해당 API가 public endpoint라 문제가 없으나, 추후 차단될 경우 대응 방안 필요

Replace HTML scraping with direct API call to YES24's searchapi endpoint
Use proper JSON parsing for search results instead of DOM manipulation
Fix book info retrieval by directly accessing GOODS_NO from API response
Improves reliability and performance of book search functionality
@pbal-creative
Copy link

덕분에 해결되었습니다

@kmsk99 kmsk99 changed the base branch from master to develop April 28, 2025 10:18
@kmsk99 kmsk99 merged commit b07e0ed into kmsk99:develop Apr 28, 2025
1 check passed
@kmsk99
Copy link
Owner

kmsk99 commented Apr 28, 2025

기여 감사합니다. 덕분에 버그 해결할수 있었습니다.

@GoBeromsu
Copy link
Contributor Author

@kmsk99 저야 말로 애착 플러그인을 만들어주셔서 감사합니다 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants