BeautifulSoup: 'NoneType' object has no attribute '__getitem__'

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
rookie123
User
Beiträge: 1
Registriert: Sonntag 20. Mai 2018, 14:00

Hallo,

ich bin absoluter Python Neuling und versuche gerade, einen Scraper BeautifulSoup zu schreiben. Dabei möchte ich im ersten Schritt die Anzahl der Seiten erfassen, auf denen die Produkte abgebildet werden.

Dafür habe ich folgenden Code geschrieben:

...
...
soup = BeautifulSoup(html_1, 'lxml')
pages = soup.find('div', {'class':{'pagination'}}).find_all('span', {'class':'page'})

for p in pages:
print(p.find('a'))
...
...

Ich erhalte (wie erwartet) diesen Output:
...
...
<a href="/collections/rugs?page=2" title="">2</a>
<a href="/collections/rugs?page=3" title="">3</a>
...
...

Ich würde nun gerne nur die titles (und somit die Seitenzahlen) erfassen und habe den for Loop wie folgt angepasst:

for p in pages:
print(p.find('a')['title'])

Dabei erhalte ich leider folgende Fehlermeldung: 'NoneType' object has no attribute '__getitem__'

Was mache ich falsch?

Vielen Dank vorab!
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Na irgendeine `Seite` wird kein <a>-Tag enthalten.
Antworten