amazon, urlib, html seite parsen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
GAST

Hi

hat jemand schon versucht bei amazon oder ähnlichen seiten was rauszuparsen?

folgendes Problem

ich bin auf amazon.de drauf und dort bei deutschen büchern auf erweiterte suchen

da kann ich eine ISBN nr. eingeben.

auf dem button ist ein SUBMIT der die FROM abschickt.

wie kann ich jetzt auch dieses "script" aufrufen mit dem ISBN wert?

kann mir da einer helfen?

ziel ist es, z.b. mit urlib einen request an amazon zu schicken und dann die empfangene seite zu parsen, so dass ich an die buch infos komme

vielen dank im voraus

newkid
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du kannst auch einfach die Amazon SOAP-API verwenden, dann hast du's gleich viel einfacher.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
GAST

super vielen dank

wusste nicht, dass amazon sowas anbietet :)
GAST

hi

jetzt hab ich eine frage

ich hab ein Beispiel, wo ich mit hilfe von soappy nach keywords suchen kann

Code: Alles auswählen

_query = 'spotted owl'
request = { 'keyword':  _query, 
            'page':     '1', 
            'mode':     'books', 
            'tag':      '', 
            'type':     'lite', 
            'devtag':   'HIER_MEINE_ID_;)'}

results = proxy.KeywordSearchRequest(request)

Das klappt auch prima, nur brauch ich ja eine suche nach der ISBN nr.

dazu hab ich folgendes probiert

Code: Alles auswählen

req = { 'asin':     '159059021X',
        'type':     'lite',
        'tag':      '',
        'devtag':   'HIER_MEINE_ID_;'}
results = proxy.AsinSearchRequest(req)  

Als Fehlermeldung kommt
File "C:\...\SOAPpy-0.12.0\SOAPpy-0.12.0\SOAPpy\Client.py", line 406, in __call
raise p
faultType: <Fault SOAP-ENV:Client: We encountered an error at our end while processing your request. Please try again
: AsinSearch: invalid input request>

warum klappt das nicht, die soap struktur müsste so passen, weis da einer rat?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Nutzt du das SOAP.py? Das soll angeblich schrott sein, besser dieses nehmen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gast

danke, wer ich mir anschauen.

hab mir diesen Wrapper hier besorgt

pyamazon-0.65

von

http://www.josephson.org/projects/pyamazon/

Das wäre eigentlich ganz einfach zu nutzen, hab es so eingesetzt

Code: Alles auswählen


import amazon
amazon.setLicense('MY_ID') # must get your own key!
pythonBooks = amazon.searchByASIN('B000BKVQS4')

for i in pythonBooks:
  print i

Als Fehlermeldung kommt

>>> <amazon.Bag instance at 0x00E6D710>

Ich meine, was soll ich in 2 Zeilen code grossartiges falsch machen können?

Das sind die Fkt die ich nutzen kann

Other available functions:
- browseBestSellers
- searchByASIN
- searchByUPC
- searchByAuthor
- searchByArtist
- searchByActor
- searchByDirector
- searchByManufacturer
- searchByListMania
- searchSimilar
- searchByWishlist
Warum bietet keiner seachByISBN an? Auch in der Soappy nicht :(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Anonymous hat geschrieben: Als Fehlermeldung kommt

>>> <amazon.Bag instance at 0x00E6D710>
Das ist keine Fehlermeldung sondern eine Bag-Instanz (Einkaufswagen?). Du kannst mit dir(i) schauen, was du mit dieser Instanz alles anstellen kannst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
GAST

Danke

klar, hätte die Beschreibung aufmerksamer lesen sollen

mit der ASIN suche kann man auch ISBN nr eingeben.

der wrapper ist echt geil, da ich mit 2-3 zeilen zu meinem ergebnis komme :)

einfach noch

Code: Alles auswählen

amazon.setLocale('de')
aufrufen, und ich kann brd isbn nr. suchen


danke für die ratschläge
Antworten