return self.attrs[key] KeyError: 'id' beim Web Scraping mit BS4

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
blindworm
User
Beiträge: 1
Registriert: Samstag 9. Januar 2021, 00:54

Hallo Ihr Lieben,

es geht um mein allererstes Projekt und jetzt komme ich leider nicht mehr weiter. Und ich hab wirklich verucht damit klar zu kommen :cry:
Ich hab mir was (vermeintlich) sehr einfaches ausgesucht und zwar will ich von einer Seite die Mangakapitel laden (später dann zu nem PDF umwandeln, damit ich die auf meinem EBookreader lesen kann.
Genau eine Seite lädt der Code auch runter, dann stoppt er aber bei line 26.... dabei ist genau der Teil aus nem Tutorial^^'
Vielen Dank schon einmal.
Vor allem für eine Erläuterung des Problems wäre ich wirklich sehr dankbar.

Liebe Grüße



Der Code

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup
import os


kapitel = 950 #input('Startkapitelnummer: ')
seite = 1

url = ('https://onepiece-tube.com/kapitel/' + str(kapitel) + '/' + str(seite))
try:
    os.mkdir(os.path.join(os.getcwd(), 'One Piece Manga'))
except:
    pass
os.chdir(os.path.join(os.getcwd(), 'One Piece Manga'))

page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
n_picture = ('One Piece ' + str(kapitel) + ' (' + str(seite) + ')')
images = soup.find_all('img')


while page.status_code != 404:

    for image in images:
        name = image['id']
        link = image['src']
        with open(n_picture + '.jpg', 'wb') as f:
            im = requests.get(link)
            f.write(im.content)

    seite = seite + 1
    if page.status_code == 404:
        seite = 1
        kapitel = kapitel + 1


die Fehlermeldung:


C:\Users\...\anaconda3\envs\pythonProject\python.exe C:/Users/.../PycharmProjects/pythonProject/main.py
Traceback (most recent call last):
File "C:/Users/.../PycharmProjects/pythonProject/main.py", line 26, in <module>
name = image['id']
File "C:\Users\...\anaconda3\envs\pythonProject\lib\site-packages\bs4\element.py", line 1406, in __getitem__
return self.attrs[key]
KeyError: 'id'

Process finished with exit code 1
Antworten