[Python] 아마존 상품 검색페이지에서 ASIN 정보 수집하기
아마존 사이트에서 fishing rod 라는 검색어로 상품을 검색했을 때 검색된 상품 리스트의 ASIN 정보를 수집하는 코드이다.
# _*_ coding: utf-8 _*_
from bs4 import BeautifulSoup
import urllib
import html5lib
import time
def getSearchItemAsin(keywords):
headers = {'User-Agent': ' Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0'}
asins = []
sleep_time = 0
sleep_exec = True
for page in range(1, 21):
try:
if(sleep_time > 0 and sleep_exec == True):
time.sleep(sleep_time)
values = {'keywords': keywords, 'page' : page, 'ie' : 'UTF8', 'qid' : int(time.time()) }
data = urllib.parse.urlencode(values)
data = data.encode('ascii')
request = urllib.request.Request('https://www.amazon.com/s/ref=sr_ex_n_0', data, headers)
with urllib.request.urlopen(request, timeout=30) as response:
the_page = response.read()
result = BeautifulSoup(the_page, 'html5lib')
content = result.find_all('li', class_='s-result-item')
for li in content:
asin = li.get('data-asin')
asins.append(asin)
if(sleep_time == 0):
sleep_time = 4
sleep_exec = True
except:
sleep_exec = False
return asins
asins = getSearchItemAsin('fishing rod')
for asin in asins:
print(asin)
검색 결과 페이지 파싱은 BeautifulSoup 모듈을 사용했다.
안녕하세요.
하나 질문드립니다.
아마존 api 값을 받아서 해당 페이지에 내용이 특정 조건을 만족하면 그 해당 페이지의 가격과 링크를 뽑고 싶은 상황입니다.
https://www.amazon.com/gp/aw/d/B072JH4HPT/ref=ya_st_dp_summary?ie=UTF8&psc=1
해당 상품 내리다 보면 스페셜 오퍼라는 곳이 나오는데그 부분에서 추출입니다.
아마존 전 상품 기준으로 추출하고 싶은데 혹시 구현이 가능할까왜??
http://docs.aws.amazon.com/AWSECommerceService/latest/DG/CHAP_MotivatingCustomerstoBuy_Promotions.html
http://docs.aws.amazon.com/AWSECommerceService/latest/DG/CHAP_MotivatingCustomerstoBuy_Promotions.html
api 정보도 있는데 솔루션을 못 찾겠네요
가능하시면 도움 부탁드립니다.
PHP, Python 등은 아마존 API를 사용하기 위한 모듈이 제공됩니다.
PHP : https://github.com/Exeu/apai-io
Python : http://python-amazon-product-api.readthedocs.io/en/latest/
https://pypi.python.org/pypi/python-amazon-simple-product-api
다른 언어용 API는 구글에서 검색해 보시기 바랍니다.
좋은 글 감사합니다. 덕분에 아마존 검색결과를 쉽게 저장할수 있게 되었습니다. 흉내내본 결과를 제 블로그에 올려보려고 합니다. 그래도 되겠지요?
안녕하세요, 블로그에 올리셔도 괜찮습니다.