네이버 쇼핑 크롤링 해야할 일이 있어서 해보았는데
한 페이지에 상품이 40개 정도 있는데 어떻게 바꿔봐도 딱 5개만 불러와졌다
막아놓은건가...ㅜㅜ
아무튼 그래서 찾아보니 네이버 쇼핑 검색 API가 있길래 크롤링 대신 사용해보았다!
네이버 공식 API 문서
developers.naver.com/docs/search/shopping/
API 문서로 들어가서 오픈 API 사용신청 클릭!
1. 내 애플리케이션을 등록한다
- 애플리케이션 이름 입력
- 사용 API - 검색
- 환경 추가 - iOS, Android, Web 중에 최소1개 선택 (최종적으로 안드로이드 환경에서 쓸거라 안드로이드로 추가해주었다!)
등록하기 클릭
내 애플리케이션 등록이 완료되었다!
내 애플리케이션이 들어가보면 Client ID, Client Secret이 발급되어있다
API는 하루 최대 25000회 까지 가능한 것 같다
이제 Python에서 API를 사용해보자
test.py
import requests
import urllib
query = "물티슈"
query = urllib.parse.quote(query)
url = "https://openapi.naver.com/v1/search/shop?query=" + query
request = urllib.request.Request(url)
request.add_header('X-Naver-Client-Id', client_id)
request.add_header('X-Naver-Client-Secret', client_secret)
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
코드 끝! 엄청 간단하다...
query에는 검색하고 싶은 키워드를 입력하면 되고,
request에 client_id, client_secret을 헤더로 보내게 되는데,
이 위치에는 아까 생성한 애플리케이션의 client_id, client_secret을 넣어주면 된다!
네이버 쇼핑에서 물티슈를 검색한 결과가 불러와진다
start는 검색 위치
display는 총 불러올 개수를 나타낸다.
요청가능한 변수들은 이렇게 4개가 있다!
display = 20을 넣어서 요청해보자
test.py
import requests
import urllib
query = "물티슈"
query = urllib.parse.quote(query)
display = "20"
url = "https://openapi.naver.com/v1/search/shop?query=" + query + "&display=" + display
request = urllib.request.Request(url)
request.add_header('X-Naver-Client-Id', client_id)
request.add_header('X-Naver-Client-Secret', client_secret)
response = urllib.request.urlopen(request)
print(response.read().decode('utf-8'))
display값을 query string으로 같이 넣어서 요청했다
총 20개의 아이템을 불러왔다!
이때까지 사용한 오픈 API중 가장 간단한 듯한 API 였다..
파이썬이라서 더 간단하게 느껴졌을수도 있는 것 같다ㅎㅎ