2010-12-31 6 views
27

아마존은 최근에 API를 변경했으며,이 API를 사용하여 프로그래밍 방식으로 Amazon의 위시리스트에 액세스 할 수있는 방법이 없다고 생각됩니다. 화면 스크래핑 외에는 아무 것도 할 수 없습니다. 어쩌면 제 3 자 서비스 (공공 데이터로만 작업해도 상관 없습니까?)일까요?아마존 위시리스트에 대한 프로그램 접근?

답변

15

스크린 스크래핑를 들어, 컴팩트 한 레이아웃 스타일 도움이 될 수 있습니다 http://bililite.com/blog/2010/10/31/hacking-my-way-to-an-amazon-wishlist-widget/

업데이트

나는 구글 스프레드 시트 내 자신의 몇 가지 해킹을했고, 작업이 기본 구현을 얻을 수 있었다.

사용하여 Google 애플리케이션 스크립트 : A1 셀에

유형 위시리스트 ID입니다. 구글에 복사하고 다음 붙여 넣기 스크립트 (도구> 스크립트> 스크립트 편집기를) 애플 리케이션 및 getWishlist 기능을 실행

function getWishlist(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; 
    var wishlistId = sheet.getRange('a1').getValue(); 
    var response = UrlFetchApp.fetch("http://www.amazon.co.uk/registry/wishlist/" + wishlistId + "?layout=compact").getContentText(); 
    var asinRegex = /name="item.([\d]+)\.(?:[A-Z0-9]+).([A-Z0-9]+).*/g 
    while (match = asinRegex.exec(response)) { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; 
    var rowIndex = Number(match[1])+2; 
    var asin = match[2]; 
    setRow(sheet, rowIndex, asin); 
    var offers = UrlFetchApp.fetch("http://www.amazon.co.uk/gp/offer-listing/" + asin).getContentText();  
    setRow(sheet, rowIndex, asin, 
      getFirstMatch(/class="producttitle">(.+)</g, offers), 
      getFirstMatch(/class="price">(.+)</g, offers)); 
    } 
    Browser.msgBox("Finished"); 
} 

function getFirstMatch(regex, text) { 
    var match = regex.exec(text); 
    return (match == null) ? "Unknown" : match[1]; 
} 

function setRow(sheet, index, a, b, c) { 
    sheet.getRange('a' + index).setValue(a); 
    sheet.getRange('b' + index).setValue(b); 
    sheet.getRange('c' + index).setValue(c); 
} 

NB, 내가 제목을 일치하는 정규식 일부 probs에 봉착/가격. 이유는 모르겠지만 기본 아이디어를 보여줍니다.

사용 구글 스프레드 시트 기능

셀 A1에 당신의 위시리스트 ID를 입력합니다.

A2에 다음 함수를 입력하십시오.

=importXML("http://www.amazon.co.uk/registry/wishlist/"&A1&"?layout=compact", "//*[starts-with(@name, 'item.')]/@name") 

유형 ID 문자열에서 ASIN를 추출합니다 B2에 다음 기능 :

=right(A2, 10) 
그것은 당신의 위시리스트에있는 각 항목의 id 문자열 세포와 그 아래 모든 웁니다

유형 제목 B2에서 ASIN에 대한 목록 제안을 가져오고 표시됩니다 B3에 다음 기능, 상기를 가져옵니다

=importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//h1") 

유형 B4에 다음과 같은 기능을, 제공 B2에서 ASIN에 대한 목록과 모든 가격을 표시 :

=concatenate(importXML("http://www.amazon.co.uk/gp/offer-listing/"&B2, "//span[@class='price']")) 
+0

링크가 약속 같은데, 감사합니다! – StasM

+0

은 amazon.co.uk를 amazon.com으로 대체하면서이 기능을 시도했습니다. xpath 쿼리 오류가 발생했습니다. 어떤 아이디어? –

+0

@ LarryG.Wapnitsky이 코드는 3 년 전 amazon을 기반으로하므로 HTML이 변경되었을 수 있습니다. 보고있는 오류에 대한 자세한 내용을 공유하거나 Google 스프레드 시트를 공유 할 수 있습니까? – robd

12

남자가 저스틴 Scarpetti 당신의 위시리스트를 긁힌 자국과 JSON 형식의 데이터를 반환하는 정말 깔끔한 "API"를 만들었습니다라고합니다.

이것은 Amazon Wish List 데이터를 검색하는 작은 API입니다. 2 년 전 Amazon이 종료 했으므로 공식 API는 없습니다. 유일한 방법은 그 주위에 ... 화면 긁힘.

아마존 위시 리스터는 phpQuery (DOM 기반 서버 측 CSS3 선택기를 jQuery를 기반으로 API)를 사용 JSON, XML, 또는 PHP 배열 개체에 아마존의 위시리스트 페이지와 수출을 긁어.

고객님의 위시리스트를 고객님의 웹 사이트에 게시하고 싶다면 완벽합니다.

출처 : Amazon Wish Lister

+20

안녕하세요! 그게 나야! :) – doitlikejustin

+0

안녕하세요, 앤디, 모바일에서 사용할 수 있습니까? 그렇다면 그 방법을 알려주십시오. – Kumar

+1

안녕하세요 @Kumar 미안하지만 모바일 백엔드와 통합하는 데 대한 조언을 드릴 수는 없습니다. 하지만 출력 JSON되는 당신은 너무 많은 문제없이 모바일 애플 리케이션 개발에 이것을 사용할 수 있어야합니다. –

관련 문제