프로젝트에서 이미지 크롤링을 이용한 서비스를 제공할 예정이다.
Jsoup을 이용해서 이미지 크롤링 기능을 구현해 놨다.
하지만 해당 방식은 Google 이미지 검색 결과 페이지에서 값을 가져오는 방식이다.
구글은 기본적으로 20개씩 띄워주게 되는데, 다음 인덱스 이미지를 가져오는 방법이 필요해서 알아보다 보니, Jsoup에서는 안되고 Selenium과 같은 자동화 도구를 사용해야 한다고 한다.
그래서 Selenium을 알아보다보니, Google의 정책에 위반될 수 있고, IP차단 등의 문제가 발생할 수 있다고 한다.
아무튼 실제 서비스를 할 생각인데, 합법적인 방법이 아니면 찝찝하기 때문에 넘기기로 했다.
Google Custom Search API
그래서 좀 더 알아보니, Custom Search API 라는 방법이 있었다.
진짜 홀린 듯이 구글 클라우드 플랫폼으로 들어가 사용해 보았다.
- 설명 : 공식문서 아주 잘되어 있고
- 사용방법 : 아주아주 간단하고
- 속도 : Jsoup 보다 훨씬 빠르다.
사용 방법
구글의 Custom Search API로 이동한다.
https://developers.google.com/custom-search/v1/introduction?apix=true&hl=ko
(상세 이동 과정이 궁금하면 더 보기 클릭)
좌측 상단의 메뉴 -> API 및 서비스 -> 라이브러리 순으로 이동한다
그 뒤, 하단부로 내려보면 Custom Search API가 있다. (못 찾겠으면 검색창도 있으니 검색하시면 됩니다)
API 사용해 보기를 누른다.
해당 페이지로 이동하였다면, 키 가져오기를 클릭한다.
사용할 프로젝트가 있다면, 사용하고 기존에 프로젝트가 없다면 안내에 따라 생성하기를 진행하면 된다.
그런 SHOW KEY를 통해 키를 확인한다. (구글 클라우드 콘솔에 들어가면 모두 확인할 수 있으니 굳이 저장하지 않아도 된다)
이후에는 프로그래밍 검색 엔진을 클릭하여 이동한다.
적절한 이름을 지정하고, 원하는 옵션을 지정한 다음 만들기를 클릭한다.
검색엔진이 생성되면 해당 검색엔진아이디를 복사해 둔다.
<script async src="https://cse.google.com/cse.js?cx={검색엔진아이디}">
</script>
<div class="gcse-search"></div>
그런 다음 아래의 주소에 검색엔진아이디와 앞에서 생성한 API키를 붙여 넣은 뒤, 검색어에 원하는 검색어를 입력한 뒤 GET요청을 보낸다.(주소창 입력 시 GET요청)
https://www.googleapis.com/customsearch/v1?q={검색어}&cx={검색엔진아이디}&key={API키}
현재 방법은 아무런 옵션을 주지 않았기 때문에 카리나가 들어간 모든 것을 검색한다.(나무위키도 크롤링된 모습)
template라고 되어있는 부분을 자세히 보면 원하는 옵션을 줄 수 있다.
자세한 방법은 링크를 참조 바란다.
https://www.googleapis.com/customsearch/v1?
q=카리나&
cx={검색엔진키}&
key={API키}&
searchType=image&
imageSize=large&
fileType=jpg
위는 파라미터 값을 추가하여 상세 옵션을 선택해 주었다.
역시 갓갓글로벌 기업 구글을 외치며, 해당 방법에 너무 만족스러워 기쁨을 주체하지 못하고 있는데, 문제가 발생했다.
비용이 발생한다.
사실 이렇게 좋은 서비스를 무료로 제공해 줄 리가 없기 때문에 당연한 소리이긴 하다 ㅋ...
나는 이상형월드컵 서비스로 아직 수익창출에 대한 부분은 생각해 본 적이 없다.
이미지 검색 기준, 하루 100회까지 무료이며, 이후에는 요금이 발생한다고 한다.
1000개당 5달러 수준이면, 단순 계산 시
하루 최대로 사용한다고 할 경우 현시점 기준으로 66,908원이고 최악의 경우에는 약 200만 원의 금액이 나온다. (66908*30)
(물론, 처음부터 저런 최대의 트래픽이 발생할리는 없겠지만... ㅎ_ㅎ)
어쨌든 현재 취준생 신분이며, 이전에 벌어놓은 돈을 계속해서 소비만 하며, 살고 있는 상황에서 비용은 최대한 절감하고 싶었다.
그래서 결국은 FAIL...
다른 방법을 찾아야 한다.
'개발일지 > 돌픽' 카테고리의 다른 글
Spring-boot 파일 업로드 - 공식문서 따라하기 ! (0) | 2023.05.12 |
---|---|
네이버 무료 검색 API 이용해보기 (0) | 2023.05.01 |
테스트 시 SpringSecurity 비활성화 하기 (0) | 2023.04.28 |
Querydsl .orderBy() (0) | 2023.04.27 |
MySql 랜덤 정렬 (0) | 2023.04.25 |