Seite 1 von 1

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

Verfasst: Sonntag 20. Mai 2018, 14:12
von rookie123
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!

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

Verfasst: Sonntag 20. Mai 2018, 14:24
von Sirius3
Na irgendeine `Seite` wird kein <a>-Tag enthalten.