Seite 1 von 1

beautifulsoup href wird nicht gefunden

Verfasst: Mittwoch 27. Januar 2021, 23:41
von Python_Stefan
Hallo zusammen,

ich versuche verschiedene Rezepte in einer Datei zusammenzustellen. Meine Idee ist es beautifulsoup dafür zu verwenden. Ich suche auf der Seite: "https://eatsmarter.de/suche/rezepte?op=Suchen". Mein erster Schritt ist es, die Links von den einzelnen Rezepten zu generieren.

In der ersten for-Schleife werden die a-Tags mit der Klasse "teaser-wrapper-link" gefunden. Diese beginnen so:

<a class="teaser-wrapper-link" href="/rezepte/griechisches-gemuese-mit-feta-0" rel="follow" title="Griechisches Gemüse mit Feta Rezept">
<div class="teaser teaser-search-result-mobile teaser-node-recipe">
<div class="teaser-left">
<i class="fa fa-play-circle"></i><span class="cookbook_link_placeholder" data-rnid="654875"></span>
<picture title="Griechisches Gemüse mit Feta Rezept">
<!--[if IE 9]><video style="display: none;"><![endif]-->
...

Zu sehen ist in diesem Abschnitt der Tag "href", den ich haben möchte. Mein Code in der zweiten for-Schleife ergibt aber ein leeres Ergebnis und findet den href-Tag nicht. Auf einer anderen Seite hat der Code einwandfrei funktioniert, aber auf der genannten Seite nicht.

Kann mir jemand sagen woran das liegt und was ich machen kann um den href-Tag zu finden und diesen in der Liste zu speichern?

Vielen Dank im Voraus

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup
import lxml
import pandas as pd

baseurl = 'https://eatsmarter.de/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
}

r = requests.get('https://eatsmarter.de/suche/rezepte?op=Suchen')
soup = BeautifulSoup(r.content, 'lxml')

rezeptliste = soup.find_all('a', class_ = 'teaser-wrapper-link') #findet den a-Tag und die Klasse, in welcher der Link steht, den ich haben möchte.
rezepte = []

for menues in rezeptliste:
    print(menues)
    for link in menues.find_all('a',href=True): #der Link steht im a-Tag bei href.
        rezepte.append(link['href'])
print(rezepte)

Re: beautifulsoup href wird nicht gefunden

Verfasst: Donnerstag 28. Januar 2021, 00:29
von __blackjack__
@Python_Stefan: Wenn Du die "href"-Werte von diesen Links haben willst, dann musst Du auf diese Links zugreifen. Und nicht *innerhalb* der <a>-Elemente nach weiteren <a>-Elementen suchen. Das sind nämlich keine — weder mit noch ohne "href"-Attribut.

`menues` ist da auch der falsche Name, denn das ist ja jeweils nur *ein* Menü/Rezept, nicht mehrere.

Re: beautifulsoup href wird nicht gefunden

Verfasst: Donnerstag 28. Januar 2021, 01:29
von Python_Stefan
@__blackjack__: vielen vielen Dank für deine Antwort! Damit hast du mir sehr weitergeholfen. Jetzt habe ich es.