tl; dr: Python ile Amazon Ürün Reklamı API'sini kullanıyorum. Bir kitap için anahtar kelime araması nasıl yapabilirim ve her giriş için TITLE, ISBN ve PRICE içeren XML sonuçları nasıl alabilirim?Amazon Ürün Reklamı API'sı ile kitap taraması - Python
Ayrıntılı versiyon:
Ben kullanıcı eBay ve Amazon gibi farklı sitelerden ders kitapları aramak için izin veren bir web sitesinde Python çalışıyorum. Temel olarak, her bir öğe için başlıklar, ISBNS ve fiyatlar gibi basit bilgileri bu sitelerden birindeki bir arama sonuçları kümesinden elde etmem gerekiyor. Ardından, bu bilgileri uygulamada gerektiği gibi depolayabilir ve formatlayabilirim (ör. HTML’yi görüntüleyebilir).
eBay'ın durumunda, ihtiyacım olan bilgiyi almak çok zor değildi. Ben bulduğum bir örneğe dayalı bir istek yapmak için urllib2
kullandım. Tek istediğim URL'ye eklemek için özel bir güvenlik anahtarı oldu:
def ebaySearch(keywords): #keywords is a list of strings, e.g. ['moby', 'dick']
#findItemsAdvanced allows category filter -- 267 is books
#Of course, I replaced my security appname in the example below
url = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsAdvanced&SERVICE-NAME=FindingService&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=[MY-APPNAME]&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&categoryId=267&keywords="
#Complete the url...
numKeywords = len(keywords)
for k in range(0, numKeywords-1):
url += keywords[k]
url += "%20"
#There should not be %20 after last keyword
url += keywords[numKeywords-1]
request = urllib2.Request(url)
response = urllib2.urlopen(request) #file like thing (due to library conversion)
xml_response = response.read()
...
... Sonra minidom ile bu çözümlenir.
Amazon'un durumunda, bu kadar kolay görünmüyor. Kolay bir sarmalayıcı aramaya başlayacağımı düşündüm. Ancak geliştirici siteleri, ilgilendiklerim (Ürün Reklamı API'sı) için bir python sarıcısı sağlamaz. Ben denedim, python-amazon-ürün-api 0.2.5 https://pypi.python.org/pypi/python-amazon-product-api/, bana bakmak için zaman değmeyebilir bazı kurulum sorunları veriyor (ama belki sadece bıktım ..). Ayrıca etrafa baktım ve pyaws ve pyec'leri buldum, ama bunlar onaylanmamış kimlik doğrulama mekanizmalarını kullanıyor gibi görünüyor.
Daha sonra eBay için yaptığım gibi URL'leri sıfırdan oluşturmaya çalışacağımı düşündüm. Ama Amazon, programatik olarak oluşturabileceğimi düşündüğüm URL'lerde bir zaman damgası gerektiriyor (belki de bu millet gibi bir şeyle imzası olan 9 milletten: https://forums.aws.amazon.com/thread.jspa?threadID=10048).
Bu işe yaramış olsaydı bile (ki bu, lojistiklerin şimdiye kadar verdiği hayal kırıklığı miktarı göz önüne alındığında), alt satırda, aradığım kitaplar için isim, fiyat ve ISBN istiyorum. API web sitesinde eğitici ile örnek bir URL oluşturabildim ve daha sonra başlıkları ve ISBN'leri içeren XML sonucunu görebiliyordum. Ama fiyatlar yok! Gah! Bazı çaresiz Google aramalarından sonra, URL'de ufak bir değişiklik yapıldı (& ResponseGroup = Teklifler ve & MerchantID = Tümü) hile yaptı, ancak hiçbir başlık yoktu. (Daha sonra olabilecek başka bir soru, olası ResponseGroup parametrelerinin bir dizinini nerede bulabilirim?)
Genel olarak, gördüğünüz gibi, bunun için gerçekten sağlam bir metodolojim yok. Yapı-url yaklaşmak için iyi bir yol mu, yoksa değerinden daha fazla sorun mu olacak? Belki de tepede bulunan dr, genel sorunun daha iyi bir temsilidir.
Ürün Tanıtım API'sini daha önce hiç duymamıştım - bu ilginç!Bütün sorumunuza yardımcı olamıyorum, ancak işte, http://docs.aws.amazon.com/AWSECommerceService/latest/DG/CHAP_ResponseGroupsList.html Yanıt Gruplarının resmi bir listesi – Qanthelas