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)