2013-05-01 29 views
6

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.

+1

Ü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

cevap

6

bir başka yolu amazon-simple-product-api olabilir:

from amazon.api import AmazonAPI 
amazon = AmazonAPI(ACCESS_KEY, SECRET, ASSOC) 
results = amazon.search(Keywords = "book name", SearchIndex = "Books") 
for item in results: 
    print item.title, item.isbn, item.price_and_currency 

, yüklemek sadece klon github gelen ve bu yardımcı olur

sudo python setup.py install 

Umut çalıştırmak için!

0

Python-amazon-product-api ile yükleme sorunlarınız varsa, e-posta listesine ayrıntıları gönderin ve size yardımcı olacaksınız.

İlgili konular