2009-05-23 1 views

Antwort

0

In Ihrem Programm: Holen Sie die Seite und analysieren Sie HTML. Filtern Sie die erforderlichen Informationen aus. Möglicherweise gibt es einige Ruby-Bibliotheken (von denen ich nichts weiß), die HTML analysieren.

hpricot scheint zu tun, was Sie wollen.

+0

Gibt es keine API (von Amazon oder anders), um das Gleiche zu tun? – user85748

1

Wenn Sie dies tun möchten, ermöglichen die Nokogiri oder hpricot Bibliotheken beide HTML-Analyse und Suche. Allerdings ist diese Art von Screen-Scraping notorisch unzuverlässig (da es jederzeit kaputt gehen kann, wenn Amazon sich dazu entschließt, ihren HTML-Code zu reorganisieren). Wenn Sie also solche Dinge für längere Zeit planen, würde ich empfehlen, die Amazon Product Advertising API zu nutzen stattdessen.

2

Ich habe diese Bibliothek gefunden (ich benutze Rails) amazon-ecs Ich experimentiere damit. Trotzdem würde ich eine Art ID (Produkt-ID?) Benötigen, um Details zu einem bestimmten Produkt zu erhalten. Betrachten wir zum Beispiel diesen Link

http://www.amazon.com/Kindle-Amazons-Wireless-Reading-Generation/dp/B00154JDAI/ref=amb_link_84372271_1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=center-1&pf_rd_r=06JJGQP9J3BHKPE38SXP&pf_rd_t=101&pf_rd_p=478184871&pf_rd_i=507846

In diesem Link zu entfachen, bemerkte ich, ASIN, die B00154JDAI ist.

Sieht aus wie ich diese ID verwenden kann, um Produktinformationen zu erhalten (mit Amazon-ecs). Ich muss nur die URL analysieren, um ASIN zu bekommen.

Gibt es einen anderen Weg, es zu tun?

Nein, ich werde nicht Bildschirm scraping, das ist keine gute Idee, zu jeder Zeit.

+0

Gibt es einen Grund, warum Sie einen anderen Weg wollen? Die URLs von Amazon sind einigermaßen einheitlich, daher sollte das Extrahieren von ASIN im Allgemeinen kein Problem sein und amazon-ecs bietet eine ziemlich einfache Abstraktion. Wenn Sie etwas Motivation haben, einen anderen Weg zu brauchen. –

+0

Ich habe nach dem Zufallsprinzip einige URLs überprüft. Gefunden, dass sie etwas namens ASIN (Amazon Standard Item Number) haben. Es erscheint irgendwo in der URL, aber nicht immer im selben Format. Manchmal haben sie/dp/ASIN, manchmal haben sie/gp/ASIN und manchmal haben sie nur ASIN. Es könnte andere Kombinationen geben, ich bin mir nicht sicher. Gibt es eine API in Amazon-ecs, die mir die ASIN erhalten kann, wenn ich die URL übergebe? – user85748

+0

(Auf das Original zurückgerollt, weil die Bearbeitung den Post unsinnig gemacht hat. "Sehen Sie sich diesen Link an". GET vars in diesem Link zu verwenden ist bedeutungslos, wenn der Link in einen Redirector auf SO geändert wird, der die GET-Variablen nicht enthält alle.) – Damon

0

Sie sollten die Bibliothek Ruby/AWS verwenden (Google dafür, mein Karma ist nicht hoch genug, um externe Links zu erlauben ...). Es wurde genau dafür geschrieben.

Möglicherweise müssen Sie die integrierte Suche verwenden, um das gewünschte Element zu finden. Danach bietet die API Zugriff auf Bilder, Links und alle verwendbaren Informationen.

6

Hier ist die Liste der unterstützten Urls wie für ihre oEmbed von Amazon bekannt, Produktwerbung API würde nur Bild nach diesen URLs parsen durch und bekommen die ASINs

http: // amazon./gp/produkt/*

http: // amazon.//dp/

http: // amazon./dp/*

http: // amazon./o/ASIN/*

http: // amazon./gp/angebot-listing/*

http: // amazon.//ASIN/

http: // amazon./gp/produkt/bilder/*

http: // amazon./gp/aw/d/*

http://www.amzn.com/ *

http://amzn.com/ *