Just Eat, eine der weltweit führenden Online-Plattformen für Essenslieferungen, verbindet Millionen von Verbrauchern mit ihren Lieblingsrestaurants. Mit detaillierten Informationen zu Restaurantverzeichnissen, Speisekarten, Bewertungen und Rezensionen ist die Plattform eine wahre Goldgrube für Unternehmen, Forscher und Entwickler, die Trends bei Essenslieferungen analysieren oder datengesteuerte Lösungen entwickeln möchten.

Im Jahr 2023 machte Just Eat 5.2 Mrd. €, mit über 60 Millionen aktive Nutzer weltweit. Sie haben über 374,000 Partnerrestaurants weltweit und eine riesige Auswahl an Küchen. Die britische Site ist die Nummer 1 in der Kategorie Restaurants und Lieferung und damit Marktführer.

In diesem Blog werden wir Just Eat mit Python und der Crawlbase scrapen Crawling API. Hier ist, was Sie lernen werden:

  • Extrahieren von Restaurant- und Menüdaten.
  • Handhabung der scrollbasierten Paginierung.
  • Speichern und Strukturieren der Scraped-Daten.

Lass uns loslegen!

Inhaltsverzeichnis

  1. Warum Just Eat-Daten scrapen?
  2. Wichtige Datenpunkte, die Sie aus Just Eat extrahieren können
  3. Crawlbase Crawling API für Just Eat Scraping
  • Installieren der Crawlbase Python-Bibliothek
  1. Einrichten Ihrer Python-Umgebung
  • Installieren von Python und erforderlichen Bibliotheken
  • Auswahl der richtigen IDE für Web Scraping
  1. Scraping von Just Eat-Restauranteinträgen
  • Untersuchen des HTML zum Identifizieren von Selektoren
  • Schreiben des Just Eat Search Listings Scrapers
  • Umgang mit scrollbasierter Paginierung
  • Speichern von Scraped-Daten in einer JSON-Datei
  • Vollständiges Python-Codebeispiel
  1. Scraping von Restaurantmenüs auf Just Eat
  • Überprüfen des HTML-Codes der Menüseite auf Selektoren
  • Schreiben des Menü-Scrapers
  • Seitennummerierung für Menüs handhaben
  • Speichern von Menüdaten in einer JSON-Datei
  • Vollständiges Python-Codebeispiel
  1. Abschließende Überlegungen
  2. Häufig gestellte Fragen (FAQs)

Warum Just Eat-Daten scrapen?

Just Eat ist ein Gigant in der Lebensmittellieferbranche und eine wahre Fundgrube an Daten, die für viele Zwecke genutzt werden können. Das folgende Bild zeigt einige der Gründe, warum Just Eat Scraping betreiben sollte:

Gründe, Daten aus Just Eat zu extrahieren

Wichtige Datenpunkte, die Sie aus Just Eat extrahieren können

Beim Scraping von Daten von Just Eat sollten Sie sich auf die wertvollsten und relevantesten Informationen konzentrieren. Das folgende Bild zeigt, was Sie aus der Plattform extrahieren können:

Wichtige Datenpunkte zum Scrapen von Just Eat

Crawlbase Crawling API für Just Eat Scraping

Die Crawlbase Crawling API macht das Scrapen von Just Eat einfach und unkompliziert. Hier erfahren Sie, warum Just Eat Crawling API eignet sich hervorragend zum Just Eat Scraping:

  • Verarbeitet mit JavaScript gerenderte Inhalte: Just Eat verwendet JavaScript, um Restaurantdetails und Menüs anzuzeigen. Crawlbase stellt sicher, dass alle Inhalte vor dem Scraping vollständig geladen sind.
  • IP-Rotation: Crawlbase rotiert IPs, um eine Blockierung zu vermeiden, sodass Sie mehrere Seiten durchsuchen können, ohne auf Ratenbegrenzungen oder CAPTCHAs zu stoßen.
  • Anpassbare Anfragen: Sie können Header, Cookies und andere Parameter an Ihre Bedürfnisse anpassen.
  • Scroll-basierte Paginierung: Just Eat verwendet unendliches Scrollen, um weitere Ergebnisse zu laden. Crawlbase unterstützt langes Scrollen, sodass Sie alle Daten erhalten.

Crawlbase Python-Bibliothek

Crawlbase bietet eine Python-Bibliothek um seine Produkte zu nutzen. Dadurch können Sie Crawling API ganz einfach. Um loszulegen, benötigen Sie Ihren Crawlbase-Zugriffstoken, den Sie erhalten können unter Anmeldung für ihren Dienst.

Crawlbase bietet zwei Arten von Tokens an. Ein normales Token für statische Websites und ein JS-Token für JS-gerenderte Websites. Crawlbase bietet 1,000 Anfragen kostenlos für seine Crawling API. Siehe Dokumentation für mehr.

Im nächsten Abschnitt erläutern wir, wie Sie Ihre Python-Umgebung für Just Eat Scraping einrichten.

Einrichten Ihrer Python-Umgebung

Bevor wir mit dem Scraping von Just Eat-Daten beginnen, müssen Sie Ihre Python-Umgebung einrichten. Eine gute Umgebung sorgt dafür, dass Ihre Skripte reibungslos laufen.

Installieren von Python und erforderlichen Bibliotheken

Stellen Sie zunächst sicher, dass Python auf Ihrem System installiert ist. Sie können die neueste Version von Python von der offizielle Python-Website. Überprüfen Sie nach der Installation die Installation, indem Sie den folgenden Befehl in Ihrem Terminal oder in der Eingabeaufforderung ausführen:

1
Python --Version

Installieren Sie dann die erforderlichen Bibliotheken mit pip. Für dieses Tutorial benötigen Sie:

  • **crawlbase**: Zur Interaktion mit der Crawlbase Crawling API.
  • **beautifulsoup4**: Zum Parsen von HTML und Extrahieren von Daten.

Führen Sie den folgenden Befehl aus, um alle Abhängigkeiten zu installieren:

1
pip installieren crawlbase beautifulsoup4

Auswahl der richtigen IDE für Web Scraping

Die Wahl der richtigen IDE (Integrated Development Environment) erleichtert das Programmieren. Hier sind einige beliebte IDEs für Python:

  1. VS-Code: Leicht, leistungsstark und verfügt über großartige Python-Erweiterungen.
  2. PyCharm: Voll ausgestattet mit erweiterten Debugging- und Testtools.
  3. Jupyter Notizbuch: Gut für explorative Datenanalyse und schrittweise Codeausführung.

Wählen Sie eine aus, die zu Ihrem Workflow passt. Für diesen Blog empfehlen wir der Einfachheit halber VS Code.

Scraping von Just Eat-Restauranteinträgen

In diesem Abschnitt werden wir Restauranteinträge von Just Eat mit Python und der Crawlbase scrapen. Crawling API. Wir gehen das Suchen von HTML-Selektoren, das Schreiben des Scrapers, das Scrollen der Paginierung und das Speichern von Daten in einer JSON-Datei durch.

Untersuchen des HTML zum Identifizieren von Selektoren

Um Daten zu scrapen, müssen Sie zunächst die Struktur der Just Eat-Website verstehen. So können Sie das HTML überprüfen:

  1. Öffnen Sie die Webseite: Navigieren Sie zur Just Eat-Suchergebnisseite für eine bestimmte Stadt, z. B. Just Eat-Einträge für die Gegend um London Bridge.
  2. Öffnen Sie die Entwicklertools: Klicken Sie mit der rechten Maustaste irgendwo auf die Seite und wählen Sie „Untersuchen“ (oder drücken Sie Ctrl + Shift + I unter Windows oder Cmd + Option + I auf dem Mac).
Ein Screenshot der HTML-Inspektion – Just Eat Restaurant Listings
  1. Schlüsselelemente lokalisieren:
  • Name des Restaurants: Auszug aus <div> mit data-qa="restaurant-info-name".
  • Art der Küche: Auszug aus <div> mit data-qa="restaurant-cuisine".
  • Rating: Auszug aus <div> mit data-qa="restaurant-ratings".
  • Restaurant Link: Extrahieren Sie die href von dem <a> Etikett in der Restaurantkarte und versehen Sie es mit dem Präfix https://www.just-eat.co.uk.

Schreiben des Just Eat Search Listings Scrapers

Nachdem Sie nun die Selektoren identifiziert haben, können Sie den Scraper schreiben. Unten finden Sie ein Beispiel-Python-Skript zum Scrapen von Restauranteinträgen mit Crawlbase und BeautifulSoup:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren JSON

# Initialisieren Sie die Crawlbase-API mit Ihrem Token
CRAWLBASE_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': CRAWLBASE_TOKEN})

# Funktion zum Abrufen und Analysieren von Just Eat-Einträgen
def Restauranteinträge abrufen(URL):
Optionen = {
'ajax_wait': "wahr", # Auf dynamischen Inhalt warten
'Seite_warten': '3000', # Warten Sie 3 Sekunden, bis die Seite geladen ist
}

Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Status: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def parse_restaurants(HTML-Inhalt):
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Restaurants = []
restaurant_cards = Suppe.Auswahl('div[data-qa="Restaurantkarte"]')

für den Karte in Restaurantkarten:
Name = Karte.Wählen Sie eine('div[data-qa="Restaurant-Info-Name"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurant-Info-Name"]') sonst ''
Küche = Karte.Wählen Sie eine('div[data-qa="Restaurantküche"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurantküche"]') sonst ''
Bewertung = Karte.select_one('div[data-qa="Restaurantbewertungen"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurantbewertungen"]') sonst ''
Link = Karte.Wählen Sie eine aus('A')['href'] if Karte.Wähle eine('A') sonst ''

restaurants.append({
'Süßkartoffel': Name,
'Küche': Küche,
'Bewertung': Bewertung,
'Link': f"https://www.just-eat.co.uk{Verknüpfung}"
})

Rückkehr Restaurants

Umgang mit scrollbasierter Paginierung

Just Eat verwendet scrollbasierte Paginierung, um mehr Ergebnisse zu laden, wenn Sie nach unten scrollen. Crawlbase Crawling API unterstützt automatisches Scrollen, sodass Sie es nicht manuell verwalten müssen.

Durch Einstellen der scroll und scroll_interval in der API-Anfrage werden alle Einträge abgerufen. Sie müssen nicht hinzufügen page_wait, wie scroll_interval wird genauso funktionieren.

1
2
3
4
Optionen = {
'scrollen': "wahr",
'Scrollintervall': '20' # 20 Sekunden lang scrollen
}

Speichern von Scraped-Daten in einer JSON-Datei

Nachdem Sie die Daten extrahiert haben, speichern Sie sie zur weiteren Analyse in einer JSON-Datei. So können Sie die Ergebnisse speichern:

1
2
3
4
def in JSON speichern(Daten, Dateiname='nur_essen_restaurants.json'):
mit XNUMXh geöffnet(Dateiname, 'w', Kodierung='utf-8') as f:
json.dump(Daten, f, Ensure_ASCII=falsch, Einzug=4)
drucken(f"Daten erfolgreich gespeichert in {Dateiname}")

Vollständiges Python-Codebeispiel

Unten sehen Sie das vollständige Skript, das alle Schritte kombiniert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren JSON

# Crawlbase API initialisieren
CRAWLBASE_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': CRAWLBASE_TOKEN})

# Funktion zum Abrufen und Analysieren von Just Eat-Einträgen
def Restauranteinträge abrufen(URL):
Optionen = {
'scrollen': "wahr",
'Scrollintervall': '20'
}

Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Status: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def parse_restaurants(HTML-Inhalt):
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Restaurants = []
restaurant_cards = Suppe.Auswahl('div[data-qa="Restaurantkarte"]')

für den Karte in Restaurantkarten:
Name = Karte.Wählen Sie eine('div[data-qa="Restaurant-Info-Name"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurant-Info-Name"]') sonst ''
Küche = Karte.Wählen Sie eine('div[data-qa="Restaurantküche"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurantküche"]') sonst ''
Bewertung = Karte.select_one('div[data-qa="Restaurantbewertungen"]').text.strip() if Karte.Wähle eine('div[data-qa="Restaurantbewertungen"]') sonst ''
Link = Karte.Wählen Sie eine aus('A')['href'] if Karte.Wähle eine('A') sonst ''

restaurants.append({
'Süßkartoffel': Name,
'Küche': Küche,
'Bewertung': Bewertung,
'Link': f"https://www.just-eat.co.uk{Verknüpfung}"
})

Rückkehr Restaurants

def in JSON speichern(Daten, Dateiname='nur_essen_restaurants.json'):
mit XNUMXh geöffnet(Dateiname, 'w', Kodierung='utf-8') as f:
json.dump(Daten, f, Ensure_ASCII=falsch, Einzug=4)
drucken(f"Daten erfolgreich gespeichert in {Dateiname}")

if __name__ == "__hauptsächlich__":
# URL der Just Eat-Suchergebnisse
URL = „https://www.just-eat.co.uk/area/ec4r3tn“
html_content = Restaurantlisten abrufen(URL)

if HTML-Inhalt:
Restaurants = parse_restaurants(html_inhalt)
save_to_json(Restaurants)

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[
{
"Name": „Squid Game – Koreanisches Hühnchen“,
"Küche": "Asiatisch, Hähnchen",
"Bewertung": "3.4(18)",
"Verknüpfung": „https://www.just-eat.co.uk/restaurants-squid-game---korean-fried-chicken---walworth-walworth/menu“
},
{
"Name": "Turm Mangal",
"Küche": "Türkisch, Mediterran",
"Bewertung": "4.5(26)",
"Verknüpfung": „https://www.just-eat.co.uk/restaurants-tower-mangal-southwark/menu“
},
{
"Name": "Süditalien",
"Küche": "Pizza, Italienisch",
"Bewertung": "3(2)",
"Verknüpfung": „https://www.just-eat.co.uk/restaurants-sud-italia-aldgate/menu“
},
{
"Name": „Der städtische Chocolatier (London)“,
"Küche": "Desserts, Waffeln",
"Bewertung": „3.6 (200+)“,
"Verknüpfung": „https://www.just-eat.co.uk/restaurants-theurbanchocolatier-aldgate/menu“
},
{
"Name": "Mutterteig-Pizza",
"Küche": "Pizza, Italienisch",
"Bewertung": "4.5(5)",
"Verknüpfung": „https://www.just-eat.co.uk/restaurants-motherdough-pizza-shad-thames/menu“
},
.... mehr
]

Mit diesem Skript können Sie Restaurantlisten von Just Eat scrapen. Im nächsten Abschnitt scrapen wir Restaurantmenüs für weitere Details.

Scraping von Restaurantmenüs auf Just Eat

Durch das Scraping von Restaurantmenüs auf Just Eat erhalten Sie detaillierte Informationen zu Menüangeboten, Preisen und Optionen zur individuellen Gestaltung von Mahlzeiten. In diesem Abschnitt zeigen wir Ihnen, wie Sie die HTML-Struktur von Menüseiten finden, den Scraper schreiben, die Seitennummerierung handhaben und die Menüdaten in einer JSON-Datei speichern.

Überprüfen des HTML-Codes der Menüseite auf Selektoren

Bevor Sie den Scraper schreiben, überprüfen Sie die HTML-Struktur der Menüseite, um die Schlüsselelemente zu finden:

  1. Öffnen Sie die Menüseite: Klicken Sie auf den Eintrag eines Restaurants, um auf dessen Menüseite zuzugreifen.
  2. Untersuchen Sie das HTML: Klicken Sie mit der rechten Maustaste und wählen Sie „Untersuchen“ (oder drücken Sie Ctrl + Shift + I/Cmd + Option + I), um die Entwicklertools zu öffnen.
  1. Schlüsselelemente lokalisieren:
  • Kategorie: Gefunden in <section> mit data-qa="item-category"Der Name ist in <h2> mit data-qa="heading".
  • Name des Gerichts: Inside <h2> mit data-qa="heading".
  • Gerichtpreis: Inside <span> mit einer Klasse beginnend mit "formatted-currency-style".
  • Beschreibung des Gerichts: Inside <div> mit einer Klasse beginnend mit "new-item-style_item-description".

Schreiben des Menü-Scrapers

Nachdem Sie die HTML-Selektoren identifiziert haben, schreiben Sie ein Python-Skript, um die Menüdetails abzurufen. Hier ist eine Beispielimplementierung:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren JSON
importieren re

# Initialisieren Sie die Crawlbase-API mit Ihrem Token
CRAWLBASE_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': CRAWLBASE_TOKEN})

def Menüseite abrufen(URL):
Optionen = {
'ajax_wait': "wahr",
'Seite_warten': '3000'
}
Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"Das Abrufen der Menüseite ist fehlgeschlagen. Status: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Menü analysieren(HTML-Inhalt):
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Menü = []

# Kategorien und Menüpunkte finden
Kategorien = Suppe.Auswahl('Abschnitt[data-qa="Artikelkategorie"]')
für den Kategorie in Kategorien:
Kategoriename = Kategorie.Wählen Sie eine aus('h2[data-qa="Überschrift"]:erstes-Kind').text.strip() if Kategorie.Wählen Sie eine('h2[data-qa="Überschrift"]:erstes-Kind') sonst 'Nicht kategorisiert'
Menüelemente = Kategorie.Auswahl('div[data-qa="Artikelkategorieliste"] div[data-qa="Artikel"]')

für den Artikel in Menüelemente:
Name = Element.Wählen Sie eins aus('h2[data-qa="Überschrift"]').text.strip() if Element.Wählen Sie eins aus('h2[data-qa="Überschrift"]') sonst ''
Preis = Artikel.Wählen Sie einen Artikel aus('span[class^="formatierter Währungsstil"]').text.strip() if Element.Wählen Sie eins aus('span[class^="formatierter Währungsstil"]') sonst ''
Beschreibung = re.sub(r'\s+', '', Element.Wählen Sie eins aus('div[Klasse^="neuer Artikelstil_Artikelbeschreibung"]').text.strip()) if Element.Wählen Sie eins aus('div[Klasse^="neuer Artikelstil_Artikelbeschreibung"]') sonst ''

Menü.anhängen({
‚Kategorie‘: Kategoriename,
'Süßkartoffel': Name,
'Preis': Preis,
'Bezeichnung': Beschreibung
})

Rückkehr menü

Seitennummerierung für Menüs handhaben

Wie SERP verwendet auch die Just Eat-Menüseite eine scrollbasierte Paginierung. Crawlbase Crawling API kann die Seitennummerierung durch Aktivieren von Scroll-Optionen handhaben. Verwenden Sie diese Optionen:

1
2
3
4
Optionen = {
'scrollen': "wahr",
'Scrollintervall': '15' # 15 Sekunden lang scrollen
}

Fügen Sie die Scrollzeit nach Bedarf hinzu, um sicherzustellen, dass alle Menüelemente vor dem Scraping geladen werden.

Speichern von Menüdaten in einer JSON-Datei

Sobald die Menüdaten extrahiert wurden, speichern Sie sie in einer JSON-Datei, um einfach darauf zugreifen und sie analysieren zu können. So geht's:

1
2
3
4
def Menü als JSON speichern(Daten, Dateiname='just_eat_menu.json'):
mit XNUMXh geöffnet(Dateiname, 'w', Kodierung='utf-8') as f:
json.dump(Daten, f, Ensure_ASCII=falsch, Einzug=4)
drucken(f"Menüdaten erfolgreich gespeichert in {Dateiname}")

Vollständiges Python-Codebeispiel

Hier ist das vollständige Skript zum Scraping von Menüs:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren JSON
importieren re

# Crawlbase API initialisieren
CRAWLBASE_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': CRAWLBASE_TOKEN})

def Menüseite abrufen(URL):
Optionen = {
'scrollen': "wahr",
'Scrollintervall': '15' # Scrollen Sie 15 Sekunden lang, um alle Elemente zu laden
}
Antwort = crawling_api.get(URL, Optionen)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren('utf-8')
sonst:
drucken(f"Das Abrufen der Menüseite ist fehlgeschlagen. Status: {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def Menü analysieren(HTML-Inhalt):
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')
Menü = []

# Kategorien und Menüpunkte finden
Kategorien = Suppe.Auswahl('Abschnitt[data-qa="Artikelkategorie"]')
für den Kategorie in Kategorien:
Kategoriename = Kategorie.Wählen Sie eine aus('h2[data-qa="Überschrift"]:erstes-Kind').text.strip() if Kategorie.Wählen Sie eine('h2[data-qa="Überschrift"]:erstes-Kind') sonst 'Nicht kategorisiert'
Menüelemente = Kategorie.Auswahl('div[data-qa="Artikelkategorieliste"] div[data-qa="Artikel"]')

für den Artikel in Menüelemente:
Name = Element.Wählen Sie eins aus('h2[data-qa="Überschrift"]').text.strip() if Element.Wählen Sie eins aus('h2[data-qa="Überschrift"]') sonst ''
Preis = Artikel.Wählen Sie einen Artikel aus('span[class^="formatierter Währungsstil"]').text.strip() if Element.Wählen Sie eins aus('span[class^="formatierter Währungsstil"]') sonst ''
Beschreibung = re.sub(r'\s+', '', Element.Wählen Sie eins aus('div[Klasse^="neuer Artikelstil_Artikelbeschreibung"]').text.strip()) if Element.Wählen Sie eins aus('div[Klasse^="neuer Artikelstil_Artikelbeschreibung"]') sonst ''

Menü.anhängen({
‚Kategorie‘: Kategoriename,
'Süßkartoffel': Name,
'Preis': Preis,
'Bezeichnung': Beschreibung
})

Rückkehr menü

def Menü als JSON speichern(Daten, Dateiname='just_eat_menu.json'):
mit XNUMXh geöffnet(Dateiname, 'w', Kodierung='utf-8') as f:
json.dump(Daten, f, Ensure_ASCII=falsch, Einzug=4)
drucken(f"Menüdaten erfolgreich gespeichert in {Dateiname}")

if __name__ == "__hauptsächlich__":
# Beispiel-Menüseiten-URL
Menü-URL = „https://www.just-eat.co.uk/restaurants-mcdonalds-londonbridgesouthwark/menu“
html_content = Menüseite abrufen(Menü-URL)

if HTML-Inhalt:
Menüdaten = Menü analysieren (HTML-Inhalt)
Menü in JSON speichern (Menüdaten)

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[
{
"Kategorie": "Was ist neu?",
"Name": „Terrys Schokoladen-Orangen-Kuchen“,
"Preis": "2.49 £",
„Beschreibung“: „Knuspriges Schokoladengebäck, gefüllt mit einer Schokoladenganache mit Terry’s Chocolate Orange-Geschmack. Informationen zu Allergenen finden Sie unter www.mcdonalds.co.uk/nutrition“
},
{
"Kategorie": "Was ist neu?",
"Name": „Großes Grinsenschütteln“,
"Preis": "3.99 £",
„Beschreibung“: „Milchshake-Basis gemischt mit Heidelbeersirup. Allergeninformationen verfügbar unter www.mcdonalds.co.uk/nutrition“
},
{
"Kategorie": "Was ist neu?",
"Name": „Mittlerer Grimassen-Shake“,
"Preis": "3.59 £",
„Beschreibung“: „Milchshake-Basis gemischt mit Heidelbeersirup. Allergeninformationen verfügbar unter www.mcdonalds.co.uk/nutrition“
},
{
"Kategorie": "Was ist neu?",
"Name": "MILKY WAY® Mini McFlurry®",
"Preis": "1.89 £",
„Beschreibung“: „Weiches Milcheis mit Milchschokoladensternen und Stücken mit Malzgeschmack, garniert mit Schokoladensoße. Informationen zu Allergenen finden Sie unter www.mcdonalds.co.uk/nutrition“
},
{
"Kategorie": "Was ist neu?",
"Name": "MILKY WAY® McFlurry®",
"Preis": "2.59 £",
„Beschreibung“: „Weiches Milcheis mit Milchschokoladensternen und Stücken mit Malzgeschmack, garniert mit Schokoladensoße. Informationen zu Allergenen finden Sie unter www.mcdonalds.co.uk/nutrition“
},
.... mehr
]

Abschließende Überlegungen

Scraping von Just Eat-Daten mit Python und dem Crawlbase Crawling API ist eine großartige Möglichkeit, wertvolle Erkenntnisse für Unternehmen, Entwickler und Forscher zu gewinnen. Von Restaurantverzeichnissen bis zu Menüdaten – die Datenerfassung und -organisation für Analysen oder die App-Entwicklung wird zum Kinderspiel.

Stellen Sie sicher, dass Ihre Scraping-Praktiken den ethischen Richtlinien und den Nutzungsbedingungen der Website entsprechen. Mit dem richtigen Ansatz können Sie Webdaten nutzen, um fundierte Entscheidungen zu treffen und wirkungsvolle Lösungen zu entwickeln.

Wenn Sie mehr Web Scraping betreiben möchten, sehen Sie sich unsere Anleitungen zum Scraping anderer wichtiger Websites an.

📜 Wie man Amazon scrapt
📜 Wie man Walmart scrapt
📜 So scrapen Sie Monster.com
📜 Wie man Groupon scrapt
📜 So scrapen Sie TechCrunch
📜 So scrapen Sie Hoteldaten von Agoda

Hotline | KolbenKraft Deutschland Support wenn Sie Fragen haben. Viel Spaß beim Scrapen!

Häufig gestellte Fragen

Die Rechtmäßigkeit von Web Scraping hängt von den AGB der Website und Ihrer beabsichtigten Verwendung der Daten ab. Lesen Sie unbedingt die AGB von Just Eat und verstoßen Sie nicht dagegen. Stellen Sie immer sicher, dass Ihre Scraping-Aktivitäten ethisch sind und den lokalen Datenschutzbestimmungen entsprechen.

F: Wie gehe ich mit dynamischen Inhalten und der Seitennummerierung bei Just Eat um?

Just Eat verwendet JavaScript, um Inhalte darzustellen und scrollbasierte Seitennummerierung durchzuführen. Mit Crawlbase Crawling API, die Seiten werden vollständig gerendert und Sie können dynamische Inhalte scrapen. Crawlbase's scroll Parameter ermöglichen Ihnen die effiziente Handhabung unendlichen Scrollens.

F: Kann ich auf Just Eat Menüinformationen für bestimmte Restaurants abrufen?

Ja, mit den richtigen Auswahlmöglichkeiten und Tools können Sie Menüinformationen für einzelne Restaurants abrufen, einschließlich der Namen der Gerichte, Beschreibungen und Preise. Crawlbase Crawling API stellt sicher, dass alle dynamischen Inhalte, einschließlich Menüdetails, für das Scraping vollständig gerendert werden.

F. Wie kann ich verhindern, dass mein Schaber verstopft?

Um nicht blockiert zu werden, verwenden Sie Techniken wie IP-Rotation, Anforderungsverzögerungen und User-Agent-Header, um echte Benutzer zu imitieren. Crawlbase Crawling API übernimmt dies alles für Sie, indem es die IP-Rotation, die Benutzeragentenverwaltung und Anti-Bot-Maßnahmen übernimmt.