http://openapi.11st.co.kr/openapi/OpenApiFrontMain.tmall
Everytime 십일절 - 11번가
11번가(주)(04637) 서울특별시 중구 한강대로 416 (남대문로5가, 서울스퀘어)대표이사 : 이상호 사업자등록번호 : 815-81-01244통신판매업신고 : 2018 - 서울중구 - 1445Tel : 1599 - 0110Fax : 02 - 849 - 4962 11번가(주)(04637) 서울특별시 중구 한강대로 416 (남대문로5가, 서울스퀘어) 대표이사 : 이상호사업자등록번호 : 815-81-01244통신판매업신고 : 2018 - 서울중구 - 144
openapi.11st.co.kr
11번가 오픈 api를 통해서 상품검색, 주문 수집, 반품 교환 처리등등 많은
일들을 처리할 수 있습니다.
단 셀러 일경우에만 모든 api를 사용 가능합니다.
일반 Open API는 상품과 카테고리 조화만 가능합니다.
파이썬으로 상품 api에서 11번가에 등록되어 있는 상품을 api를 통해 조회 해보도록 하겠습니다.
방법도 상당히 간단합니다.
requests.get() 함수로 호출한 후
받아온
xml 데이터를 파싱하는
작업만 하면 됩니다.
import requests
requests를 임포트 합니다.
key ="11번가에서 제공받은 오픈api키"
keyword = "검색하고자 하는 키워드"
url ="http://openapi.11st.co.kr/openapi/OpenApiService.tmall?key="+key+"&apiCode=ProductSearch&keyword="+keyword
11번가에서 사용자 등록을 하고나면
주어지는 api키와 검색하고자 하는 키워드 url에 넣어줍니다.
req = requests.get(url)
xmlRowdata = req.content.decode('cp949')
requests 호출후 나온 데이터에 한글이 나오도록 디코딩해줍니다.
xml 데이터를
보기좋게 파싱하는 작업을 해야합니다.
<Products>
<TotalCount>74641</TotalCount>
<Product>
<ProductCode>2391628905</ProductCode>
<ProductName>
<![CDATA[ ASRock Z390 EXTREME 4 디앤디컴 /인텔 커피레이크 ]]>
</ProductName>
<ProductPrice>241480</ProductPrice>
<ProductImage>
<![CDATA[
http://i.011st.com/t/080/pd/19/6/2/8/9/0/5/fgMYB/2391628905_B.jpg
]]>
</ProductImage>
<ProductImage100>
<![CDATA[
http://i.011st.com/t/100/pd/19/6/2/8/9/0/5/fgMYB/2391628905_B.jpg
]]>
</ProductImage100>
파이썬에서 할 수있는 여러방법이 있지만
BeautifulSoup을 이용하여 파싱합니다.
BeautifulSoup를 import 해주고
from bs4 import BeautifulSoup as bs
soup = BeautifulSoup(xmlRowdata,'html.parser')
원하는 데이터를 추출하는 건 html 파싱할때에 비슷합니다.
모든 사진을 찾는다면
for i in soup.find_all("productimage"):
print(i)
다른 데이터는 비슷하게 응용하면 되겠죠.
전체코드는
import requests
from bs4 import BeautifulSoup
def api():
key ="11번가에서 제공받은 오픈api키"
keyword = "검색하고자 하는 키워드"
url ="http://openapi.11st.co.kr/openapi/OpenApiService.tmall?key="+key+"&apiCode=ProductSearch&keyword="+keyword
req = requests.get(url)
xmlRowdata = req.content.decode('cp949')
soup = BeautifulSoup(xmlRowdata,'html.parser')
for i in soup.find_all("productimage"):
print(i)
if __name__ == '__main__':
api()
댓글