@blubb1810: Ich habe mir mal den Beispiel-Link angeschaut und zweifele ein bisschen, dass das so funktioniert. Da sind die ersten 5 Preise (ohne Versand) gerade:
3,44
895,00
12,99
14,00
15,50
Was einen Durchsnittswert von 188,19 ergibt. Und für den Median sind 5 Werte wohl ein bisschen wenig.
Standardmässig scheinen da 50 Ergebnisse auf einer Ergebnisseite zu kommen, die könnte man wenn man sie sowieso schon geliefert bekommt, auch verwenden. Allerdings wird man dann wohl früher oder später auf das Problem treffen, dass irgendwann Suchtreffer kommen, die sich immer weiter von dem wonach man sucht, entfernen.
Bücher sind mir persönlich bei den meisten Programmiersprachen zu schnell veraltet. In der Python-Dokumentation gibt es ein Grundlagentutorial das parallel zur Sprache aktuell gehalten wird. Das sollte man mal durchgearbeitet haben, unabhängig davon was man sonst noch so an Lernmaterial verwendet.
Für das Thema Deines Projekts müsste man noch wissen wie HTTP funktioniert, und HTML und CSS, und eventuell auch ein bisschen JavaScript, wenn die zu scrapende Seite(n) dynamisch Inhalte nachladen und/oder generieren. Eine IMHO ganz brauchbare Quelle für diese ganzen Themen ist
https://developer.mozilla.org/en-US/
Konkret zum Quelltextschnippsel: Die Parameter in der URL würde ich `requests` zusammensetzen lassen. Das ist übersichtlicher wenn man die als Datenstrukur im Programm hat, und man kann dann auch einfacher einzelne Werte setzen.
`page` ist kein so guter Name für ein `Response`-Objekt. Da kann auch was anderes als eine Seite drin sein, und da ist mehr als nur der Seiteninhalt drin.
Man sollte auch immer prüfen ob das keine Fehlerantwort war, bevor man den Inhalt verarbeitet. Vielleicht verrät Dir das ja auch schon warum es manchmal funktoniert und manchmal nicht.
Du erwähnst die Ausnahme gar nicht, die der Code auslöst. `game` ist eine Liste und Listen haben keine `find_all()`-Methode. Die Elemente *in* der Liste haben jeweils so eine Methode. Allerdings ist `find_all()` da dann auch nicht so zielführend, denn jeder Artikal hat ja nur *einen* Preiseintrag.
Letztlich will E-Bay nicht, dass Du so etwas machst. Denn wenn keine Ergebnisse kommen, solltest Du mal auf den Seitenquelltext schauen der da ausgeliefert wird.