Ich habe nur einen Link zu einer Produktseite, bei Amazon. Wie bekomme ich alle Informationen (Foto, Preis usw.) in meinem Ruby-Programm, nur mit diesem Link?Wie erhalten Sie Produktinformationen von Amazon, nur basierend auf der URL?
Antwort
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.
Gibt es keine API (von Amazon oder anders), um das Gleiche zu tun? – user85748
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.
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
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.
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. –
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
(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
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.
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/*
, wie hast du das endlich lösen? Hast du reguläre Ausdrücke benutzt? URL-Scraping? – Jayaram
Ja, haben Sie jemals einen besseren Weg gefunden, die ItemID zu analysieren? – cjn