Seite 1 von 1

urllib HTML mit Variable

Verfasst: Samstag 15. März 2014, 19:00
von evd
hallo zusammen

Ich wollte mir ein Programm schreiben das auf der Seite von Amazon, unter den "Album für unter 5€" angeboten mir alle rausfiltert die von meinen Lieblingsbands sind...

das habe ich auch so weit schon geschafft. Geschrieben wird die Band, Album und Preis.

Nur Leider habe ich ein Problem mehr als nur eine Seite aufzurufen

Hier mal mein Quelltext:

Code: Alles auswählen

import urllib.request

#geht alle Seiten durchm (hier 400)
for i in range (1,401):
    f="http://www.amazon.de/s/ref=sr_pg_", i, "?rh=n%3A77195031%2Cp_36%3A200-499%2Cp_n_format_browse-bin%3A180848031&bbn=77195031&ie=UTF8&qid=1394899533"
    response = urllib.request.urlopen(f)
    amazon = str(response.read())
    
    #Suchen aller "Die Drei ???" CD auf der Seite + Preis
    a = "Die Drei ???"
    print(a)
    anfang = 0
    ende = 0
    while ende <= 0:
        
        #Sind (noch andere) CD's da?
        try:
            h1 = amazon.index(a,anfang)
            h2 = amazon.index("/a",h1)
            Preis = amazon.index("EUR",h1)
            Album1 = amazon.index('srTitle', h1-300)
            Album2 = amazon.index("span", Album1+10)
            print(amazon[Album1+9:Album2-2])
            print(amazon[Preis+4:Preis+8],"€")
            anfang = Preis
            nächstes=input("")
            
        #wenn nicht dann raus, und zur nächsten Seite!
        except ValueError:
            if i==401:
                print("_________________________________das war alles von'",a,"'")
                ende = 1
            else:
                ende = 1
Habt ihr eine Ahnung wie ich die Fehlermeldung:
Traceback (most recent call last):
File "/home/evd/Schreibtisch/Amazon/amazon.py", line 6, in <module>
response = urllib.request.urlopen(f)
File "/usr/lib/python3.3/urllib/request.py", line 156, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.3/urllib/request.py", line 460, in open
req.timeout = timeout
AttributeError: 'tuple' object has no attribute 'timeout'
beheben kann?

Ich würde mich über eine Antwort Freuen

Grüße
EvD

Re: urllib HTML mit Variable

Verfasst: Samstag 15. März 2014, 19:08
von darktrym
Lies mal ein Tutorial über Stringformatierung, das sollte relativ früh kommen. Tupel trennt man mit Komma.

Re: urllib HTML mit Variable

Verfasst: Samstag 15. März 2014, 19:32
von Sirius3
@evd: was soll denn »f« sein? Und was ist es wirklich?
»read« liefert schon einen String, die Umwandlung ist also unsinnig. Das ganze Durchsuchen der Seite ist sehr magisch und fragil. Schau Dir mal eine HTML-Parserbibliothek wie Beautifulsoup oder lxml an.

Re: urllib HTML mit Variable

Verfasst: Samstag 15. März 2014, 19:40
von evd
@Sirius3

ich dachte auch das read mir ein string liefert, aber wenn ich es weg nehme meckert er herum, das er keinen String habe... also... ka

"f" soll dann die zusammengesetzte Version der URL sein... die nach jedem Durchlauf die nächste Seite aufruft.