Healthline ist einer der meistbesuchten Gesundheits- und Wellnessverlage im Web mit einem umfangreichen Archiv medizinisch geprüfter Artikel zu Ernährung, Fitness, Erkrankungen und psychischer Gesundheit. Jeder öffentliche Artikel enthält eine Ebene strukturierter Metadaten, die für sich genommen wirklich nützlich sind: eine Überschrift, eine Autorenzeile, ein Veröffentlichungs- oder Aktualisierungsdatum, eine Kategorie und eine kurze Zusammenfassung. Diese Metadaten ermöglichen Content-Recherche, Trendanalysen über Gesundheitsthemen und strukturierte Kataloge der Veröffentlichungen eines großen Verlags, alles ohne den Artikeltext selbst zu berühren.

Dieser Leitfaden zeigt Ihnen, wie Sie Healthline für diese öffentlichen Artikelmetadaten mit Python scrapen und die Ergebnisse dann in CSV exportieren. Sie bauen einen kleinen, ausführbaren Scraper, der eine gerenderte Such- oder Listungsseite über die Crawling API abruft, jedes Ergebnis mit BeautifulSoup parst und saubere Zeilen auf Disk schreibt. Die gesamte Anleitung bleibt auf öffentliche Metadaten beschränkt. Healthline-Artikelkörper sind urheberrechtlich geschützter redaktioneller Inhalt, daher sammeln wir Struktur und Zusammenfassungen für Recherchen, niemals den vollständigen Text zum Weiterveröffentlichen.

Was Sie bauen werden

Ein Python-Skript, das eine öffentliche Healthline-Listungs- oder Such-URL entgegennimmt, das gerenderte HTML über die Crawling API abruft und für jeden Artikel auf der Seite einen strukturierten Datensatz extrahiert. Wir verwenden eine Themensuche als laufendes Beispiel und ziehen diese öffentlichen Metadatenfelder pro Artikel:

  • Artikeltitel die Überschrift des Beitrags, zum Beispiel "Antacids Associated with Higher Risk of Migraine".
  • URL der kanonische Link zur öffentlichen Artikelseite.
  • Autor die Autorenzeile, wenn Healthline sie auf der Seite anzeigt.
  • Veröffentlichungs- oder Aktualisierungsdatum das Datum, an dem der Artikel veröffentlicht oder zuletzt geprüft wurde.
  • Kategorie der Bereich, unter dem der Artikel steht, z. B. Gesundheitsnachrichten oder Ernährung.
  • Zusammenfassung die kurze Beschreibung oder der Einleitungstext, den Healthline unter der Überschrift anzeigt.

Warum eine einfache Anfrage bei Healthline scheitert

Wenn Sie eine Healthline-Listungs- oder Such-URL mit einem einfachen HTTP-Client anfordern, erhalten Sie eine Antwort mit Status 200 und fast keinen Artikeldaten im Body. Healthline rendert seine Ergebniskarten im Browser mit JavaScript, sodass das anfängliche HTML eine Hülle ist, die sich erst füllt, nachdem die Skripte der Seite ausgeführt wurden. Eine Suchergebnisseite wird insbesondere clientseitig aus einem Datenfeed zusammengestellt, was bedeutet, dass die Titel, Links und Zusammenfassungen, nach denen Sie suchen, nicht im rohen Markup vorhanden sind, das ein einfacher requests-Aufruf zurückgibt.

Ein funktionierender Healthline-Scraper benötigt also zwei Dinge in einer Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Website als echten Besucher liest. Sie können das selbst mit einem Headless-Browser und einem Pool von rotierenden privaten Proxys zusammenstellen, aber diese zusammenzuhalten und am Laufen zu halten ist der Großteil der Arbeit. Die Crawling API faltet beides in einen einzigen Aufruf: Sie senden ihr die URL mit einem JavaScript-Token, sie rendert die Seite hinter einer vertrauenswürdigen IP und gibt fertiges HTML zum Parsen zurück.

Warum das JS-Token

Crawlbase bietet zwei Token-Typen. Das normale Token ruft statisches HTML ab; das JavaScript (JS)-Token rendert die Seite zuerst in einem echten Browser. Healthline wird clientseitig gerendert, daher benötigen Sie hier das JS-Token. Das normale Token gibt dieselbe leere Hülle zurück, die ein einfacher Abruf ergeben würde, und es gibt nichts daraus zu parsen.

Voraussetzungen

Sie benötigen einige Dinge, bevor Sie Code schreiben. Keines davon nimmt viel Zeit in Anspruch.

Grundlegendes Python. Sie sollten in der Lage sein, ein Python-Skript zu schreiben und auszuführen und Pakete mit pip zu installieren. Wenn Sie neu im Parsen von HTML sind, behandelt unser Primer zu BeautifulSoup in Python die Selektor-Grundlagen, auf die dieses Tutorial aufbaut.

Python 3.8 oder höher. Bestätigen Sie Ihre Version mit python --version. Wenn Sie es nicht haben, installieren Sie es von python.org oder über eine Distribution wie Anaconda.

Ein Crawlbase-Konto und JS-Token. Registrieren Sie sich, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript (JS)-Token von der Kontodokumentationsseite. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, halten Sie es also aus der Versionskontrolle heraus. Der kostenlose Tarif umfasst bis zu 20.000 Anfragen, genug, um dieser Anleitung von Anfang bis Ende zu folgen.

Das Projekt einrichten

Erstellen Sie einen Projektordner und eine virtuelle Umgebung, damit Abhängigkeiten isoliert bleiben, und installieren Sie dann die drei Bibliotheken, die der Scraper benötigt.

bash
mkdir healthline_scraper
cd healthline_scraper

python -m venv healthline_env
source healthline_env/bin/activate

pip install crawlbase beautifulsoup4 pandas

Unter Windows aktivieren Sie die Umgebung mit healthline_env\Scripts\activate anstelle der source-Zeile. Drei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Client für die Crawling API, beautifulsoup4 parst das zurückgegebene HTML, damit Sie einzelne Felder per CSS-Selektor herausziehen können, und pandas strukturiert die Datensätze und schreibt sie in CSV.

Schritt 1: Die gerenderte Listungsseite abrufen

Beginnen Sie damit, die fertige Seite zu erhalten. Importieren Sie die CrawlingAPI-Klasse, initialisieren Sie sie mit Ihrem JS-Token und fordern Sie die Listungs-URL an. Das Prüfen des Statuscodes vor dem Parsen hält Fehler laut statt still. Beachten Sie die zwei Wartoptionen: ajax_wait weist die API an, auf das Beenden des asynchronen Inhalts zu warten, und page_wait hält für eine feste Anzahl von Millisekunden, damit spät-rendernde Karten erscheinen, bevor die Seite erfasst wird.

python
from crawlbase import CrawlingAPI

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_JS_TOKEN"})

def crawl(page_url):
    options = {"ajax_wait": "true", "page_wait": 5000}
    response = api.get(page_url, options)
    if response["status_code"] == 200:
        return response["body"].decode("utf-8")
    print(f"Request failed: {response['status_code']}")
    return None

if __name__ == "__main__":
    page_url = "https://www.healthline.com/search?q1=migraine"
    html = crawl(page_url)
    print(html[:500] if html else "No HTML returned")

Führen Sie das Skript mit python scraper.py aus und Sie sollten echtes Ergebniskarten-Markup sehen, nicht die leere Hülle, die ein einfacher Abruf zurückgibt. Fünf Sekunden ist ein vernünftiger Ausgangswert für page_wait; erhöhen Sie ihn, wenn die Karten leer zurückkommen. Das bestätigt, dass das Rendering funktioniert, bevor Sie einen einzigen Selektor schreiben.

Crawlbase Crawling API

Healthline benötigt eine vollständig gerenderte Seite hinter einer vertrauenswürdigen IP in einem einzigen Aufruf, was genau das ist, was Sie in Schritt 1 bestätigt haben. Die Crawling API nimmt ein JS-Token, führt die Seite in einem echten Browser aus, damit die clientseitigen Artikelkarten erscheinen, und rotiert durch private IPs serverseitig, sodass Sie weder eine Headless-Browser-Flotte noch einen Proxy-Pool selbst betreiben müssen. Richten Sie es zuerst auf eine öffentliche Suchseite im kostenlosen Tarif.

Schritt 2: Die Ergebniskartenstruktur inspizieren

Bevor Sie Selektoren schreiben, öffnen Sie eine Healthline-Such- oder Listungsseite in Ihrem Browser und inspizieren Sie eine Ergebniskarte mit den Entwicklertools. Healthline liefert gehashte, build-generierte Klassennamen, sodass sich die genauen Strings im Laufe der Zeit ändern. Zum Zeitpunkt des Schreibens verlinkt jedes Suchergebnis über ein <a> mit einer Klasse wie css-17zb9f8, und die kurze Beschreibung sitzt in einem Geschwister-<div class="css-1evntxy">. Die gewünschten Felder sind grob so zugeordnet:

  • Artikeltitel und URL befinden sich auf dem Ergebnislink: Der Linktext ist der Titel, das href ist die öffentliche Artikel-URL.
  • Zusammenfassung sitzt im Beschreibungsblock, dem kurzen Einleitungstext, den Healthline unter jedem Ergebnis anzeigt.
  • Kategorie kann aus dem URL-Pfad gelesen werden, zum Beispiel /health-news/ oder /nutrition/, den Healthline als Abschnittspräfix verwendet.

Autor und Datum sind nicht immer auf der Listungskarte vorhanden; sie befinden sich auf der Artikelseite selbst, was Schritt 4 behandelt. Da Healthlines Klassennamen gehasht sind und sich bei jedem Deploy ändern, behandeln Sie sie als Ausgangspunkt und nicht als Vertrag, und untersuchen Sie eine Live-Seite erneut, wenn ein Feld leer zurückkommt.

Schritt 3: Die Listung parsen und in CSV exportieren

Mit dem gerenderten HTML laden Sie es in BeautifulSoup, wählen jeden Ergebnislink aus und ziehen Titel, URL, Zusammenfassung und Kategorie von jedem heraus. Verpacken Sie die Feldlesevorgänge so, dass ein fehlendes Element einen leeren String zurückgibt, anstatt den Lauf zum Absturz zu bringen, und übergeben Sie dann die Datensätze an pandas, um eine CSV zu schreiben.

python
from bs4 import BeautifulSoup
import pandas as pd

def category_from_url(url):
    parts = url.split("/")
    return parts[3] if len(parts) > 3 else ""

def parse_listing(html):
    soup = BeautifulSoup(html, "html.parser")
    articles = []
    for link in soup.select('a.css-17zb9f8'):
        url = link.get("href", "")
        if not url:
            continue
        summary_el = link.find_next("div", class_="css-1evntxy")
        articles.append({
            "title": link.get_text(strip=True),
            "url": url,
            "category": category_from_url(url),
            "summary": summary_el.get_text(strip=True) if summary_el else "",
        })
    return articles

def save_to_csv(data, filename):
    df = pd.DataFrame(data)
    df.to_csv(filename, index=False)
    print(f"Saved {len(data)} rows to {filename}")

Der Ergebnislink wird einmal für Titel und href gelesen, die Kategorie wird aus dem URL-Pfad abgeleitet, sodass kein separater Selektor benötigt wird, und die Zusammenfassung fließt durch einen geschützten Lesevorgang, der einen leeren String zurückgibt, wenn der Beschreibungsblock fehlt. Der save_to_csv-Helper wandelt die Datensätze in ein pandas-DataFrame um und schreibt es mit to_csv, den Export, auf dem der Rest dieser Anleitung aufbaut.

Selektoren verändern sich

Healthlines Markup ändert sich ohne Vorankündigung, und die oben genannten gehashten Klassennamen können bei jedem Deploy umbenannt werden. Wenn ein Feld über jede Karte hinweg leer zurückkommt, untersuchen Sie eine Live-Seite in den Entwicklertools Ihres Browsers und aktualisieren Sie den Selektor. Regelmäßige Selektorwartung ist für jeden Produktions-Scraper normal, kein Zeichen dafür, dass etwas kaputt ist.

Schritt 4: Mit Autor, Datum und Kategorie von der Artikelseite anreichern

Die Listung liefert Ihnen Titel, URL und Zusammenfassung. Um Autor und Veröffentlichungs- oder Aktualisierungsdatum zu ergänzen, rufen Sie jede Artikelseite ab und lesen ihre öffentlichen Metadaten. Healthline stellt die Überschrift in einem <h1> bereit, die Autorenzeile in einem Block mit einem data-testid="byline"-Attribut und das Datum in einem <time>-Element, dessen datetime-Attribut einen maschinenlesbaren Zeitstempel enthält. Wir lesen nur diese Metadaten, niemals den Artikelkörper.

python
def text_or_empty(soup, selector):
    el = soup.select_one(selector)
    return el.get_text(strip=True) if el else ""

def parse_article_meta(html, url):
    soup = BeautifulSoup(html, "html.parser")
    time_el = soup.find("time")
    return {
        "title": text_or_empty(soup, "h1"),
        "url": url,
        "author": text_or_empty(soup, '[data-testid="byline"]'),
        "date": time_el.get("datetime", "") if time_el else "",
        "category": category_from_url(url),
    }

Jedes Feld hat einen Fallback, sodass eine fehlende Autorenzeile oder ein fehlendes Datum einen leeren String zurückgibt anstatt einer Ausnahme. Das datetime-Attribut des <time>-Elements ist dem sichtbaren Datumstext vorzuziehen, weil es bereits in einem einheitlichen ISO-Format vorliegt, was das Sortieren und Filtern trivial macht, sobald die Daten in CSV sind. Beachten Sie, was diese Funktion absichtlich nicht sammelt: die Absätze des Artikels. Wir bleiben bei Titel, Autor, Datum, Kategorie und der Listungszusammenfassung.

Schritt 5: Alles zusammenführen

Verbinden Sie jetzt das Listungs-Scraping, die Anreicherung pro Artikel und den CSV-Export in einem ausführbaren Skript. Rufen Sie die Listung ab, parsen Sie sie für URLs, rufen Sie jede Artikelseite für ihre Metadaten ab und schreiben Sie alles in eine einzige CSV. Eine kurze Pause zwischen Anfragen hält den Lauf höflich.

python
import time
from crawlbase import CrawlingAPI
from bs4 import BeautifulSoup
import pandas as pd

api = CrawlingAPI({"token": "YOUR_CRAWLBASE_JS_TOKEN"})
OPTIONS = {"ajax_wait": "true", "page_wait": 5000}

def crawl(page_url):
    response = api.get(page_url, OPTIONS)
    if response["status_code"] == 200:
        return response["body"].decode("utf-8")
    print(f"Request failed: {response['status_code']}")
    return None

def main():
    listing_url = "https://www.healthline.com/search?q1=migraine"
    listing_html = crawl(listing_url)
    if not listing_html:
        return

    listing = parse_listing(listing_html)
    records = []
    for item in listing:
        article_html = crawl(item["url"])
        if article_html:
            meta = parse_article_meta(article_html, item["url"])
            meta["summary"] = item["summary"]
            records.append(meta)
        time.sleep(2)

    save_to_csv(records, "healthline_articles.csv")

if __name__ == "__main__":
    main()

Dies setzt voraus, dass parse_listing, parse_article_meta, category_from_url und save_to_csv aus den früheren Schritten in derselben Datei sind. Der Ablauf ist unkompliziert: eine Anfrage für die Listung, dann eine Anfrage pro Artikel zur Anreicherung mit Autor und Datum, dann ein einzelner CSV-Schreibvorgang am Ende. Die summary aus der Listungskarte wird zu den Metadaten jedes Artikels zusammengeführt, sodass jede Zeile vollständig ist.

Wie die Ausgabe aussieht

Führen Sie das vollständige Skript mit python scraper.py aus und Sie erhalten eine CSV mit einer Zeile pro Artikel, die nur öffentliche Metadaten enthält, bereit zur Analyse in pandas oder einer Tabellenkalkulation.

csv
title,url,author,date,category,summary
"Antacids Associated with Higher Risk of Migraine",https://www.healthline.com/health-news/antacids-increase-migraine-risk,"Nancy Schimelpfening",2024-01-09,health-news,"New research suggests people who take antacids may be at greater risk for migraine attacks."
"Migraine: What to Ask Your Doctor",https://www.healthline.com/health/migraine/what-to-ask-doctor-migraine,"Healthline Editorial Team",2023-11-02,health,"A short list of questions to bring to your next appointment."

Da das Datum aus dem datetime-Attribut des <time>-Elements kommt, landet es im ISO-Format, sodass Sie nach Aktualität sortieren oder einen Datumsbereich filtern können, ohne Freitext zu parsen. Die aus jedem URL-Pfad abgeleitete Kategoriespalte ermöglicht es Ihnen, Zählungen nach Abschnitt zu gruppieren, um zu sehen, wo ein Verleger die Abdeckung konzentriert.

Über Themen und Seiten skalieren

Eine Listung ist eine Demo; ein echter Job läuft über viele Themen und Ergebnisseiten. Healthlines Suche akzeptiert einen Abfrageparameter, sodass Sie über eine Liste von Themen schleifen und dasselbe Abruf-und-Parse-Paar für jedes wiederverwenden können. Da jedes Suchergebnis dieselbe Kartenstruktur teilt, funktioniert der bereits geschriebene Parser über alle hinweg ohne Änderungen. Fügen Sie die Zeilen von jedem Thema in eine Liste ein und schreiben Sie am Ende eine einzige CSV.

python
def scrape_topics(topics):
    all_articles = []
    for topic in topics:
        url = f"https://www.healthline.com/search?q1={topic}"
        html = crawl(url)
        if html:
            all_articles.extend(parse_listing(html))
        time.sleep(2)
    return all_articles

topics = ["migraine", "nutrition", "sleep"]
save_to_csv(scrape_topics(topics), "healthline_topics.csv")

Das time.sleep(2) zwischen Themen ist beabsichtigt. Die Suche in einer engen Schleife zu hämmern ist der schnellste Weg zur Drosselung, auch mit verwaltetem Rendering und Rotation. Verteilen Sie Anfragen und hören Sie früh auf, sobald ein Thema keine neuen Artikel mehr zurückgibt.

Nicht gesperrt bleiben

Auch mit verwaltetem Rendering beobachtet Healthline scraper-artigen Traffic. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jeden großen Verleger.

  • Pacing der Anfragen. Verteilen Sie Anfragen und variieren Sie Ihre Themen, anstatt einen Suchpfad mit voller Geschwindigkeit zu crawlen.
  • Auf Rotation setzen. Ein Pool privater IPs verteilt Anfragen über viele echte Benutzeradressen, sodass keine einzelne ein Rate-Limit auslöst. Die Crawling API erledigt das für Sie. Wenn Sie Ihren eigenen Stack verwenden, ist das der Teil, den Sie richtig machen müssen.
  • Status-Codes lesen. Ein Lauf, der anfängt, Herausforderungen oder Fehler zurückzugeben, signalisiert Ihnen, dass die aktuelle Rate oder das IP-Tier nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückgehen, nicht als Rauschen, das ignoriert werden soll.

Für das umfassendere Playbook lesen Sie wie man Websites scrapt, ohne gesperrt zu werden und den tieferen Einblick in das Umgehen von CAPTCHAs beim Web-Scraping. Wenn Sie lieber Ihren eigenen Traffic durch einen rotierenden Pool leiten möchten, anstatt die verwaltete API zu verwenden, gibt Ihnen der Smart AI Proxy (auch AI Proxy genannt) dieselbe private IP-Rotation als Drop-in-Proxy-Endpunkt.

Ob das Scrapen von Healthline erlaubt ist, hängt von Healthlines Nutzungsbedingungen, Ihrer Gerichtsbarkeit und dem ab, was Sie mit den Daten tun. Healthlines Bedingungen beschränken den automatisierten Zugriff, und seine Inhalte sind urheberrechtlich geschützte redaktionelle Werke, sodass das Scrapen unabhängig von der Sorgfalt Ihres Toolings gegen diese Bedingungen verstoßen kann. Kein Code hier ändert das. Er lässt nur den technischen Teil funktionieren. Lesen Sie die Healthline-Nutzungsbedingungen und seine robots.txt, und behandeln Sie beides als Grenze für das, was Sie sammeln.

Einige Grundsätze, die es wert sind, eingehalten zu werden. Sammeln Sie nur öffentliche Metadaten: Artikeltitel, URL, Autorenzeile, Veröffentlichungs- oder Aktualisierungsdatum, Kategorie und die kurze Zusammenfassung, die jeder auf einer öffentlichen Seite ohne Anmeldung sehen kann. Scrapen und veröffentlichen Sie keine vollständigen Artikelkörper. Healthlines Artikel sind urheberrechtlich geschützte medizinische und redaktionelle Inhalte, und ihre Reproduktion ist ein Urheberrechtsproblem, nicht nur ein Bedingungsproblem. Respektieren Sie Healthlines angegebene Rate-Erwartungen und halten Sie Ihr Anfragevolumen niedrig genug, dass Sie seine Server nicht belasten.

Noch ein Punkt, der spezifisch für einen Gesundheitsverlag ist: Dieser Leitfaden dient der Katalogisierung und Recherche öffentlicher Metadaten, nicht der Beschaffung medizinischer Ratschläge. Gesundheitsinformationen ändern sich, und die Genauigkeit eines Artikels hängt vom Kontext ab, den eine gescrapte Zeile nicht erfassen kann. Verlassen Sie sich für medizinische Entscheidungen nicht auf gescrapte Gesundheitsinhalte, und konsultieren Sie einen qualifizierten Mediziner oder Rechtsanwalt, bevor Sie etwas davon handeln oder weiterverbreiten. Healthline bietet keine öffentliche API für den Massenzugriff auf Artikel an. Wenn Ihr Projekt den vollständigen Inhalt oder die Massenweiterverbreitung benötigt, ist der richtige Weg, eine Genehmigung oder Lizenzvereinbarung anzufragen, kein ausgefeilterer Scraper.

Zusammenfassung

Wichtigste Erkenntnisse

  • Healthline wird clientseitig gerendert. Ein einfacher Abruf gibt eine leere Hülle zurück, daher müssen Sie die Seite rendern, bevor Sie sie parsen.
  • Rendering und eine vertrauenswürdige IP gehören zusammen. Die Crawling API mit einem JS-Token erledigt beides in einem Aufruf, wobei ajax_wait und page_wait sicherstellen, dass die Artikelkarten vollständig geladen sind, bevor sie erfasst werden.
  • BeautifulSoup plus pandas erledigt die Arbeit. Ordnen Sie Titel, URL, Autor, Datum, Kategorie und Zusammenfassung den Hooks der Seite zu, dann exportieren Sie die Zeilen direkt in CSV.
  • Skalieren durch Schleifen über Themen. Durchlaufen Sie eine Liste von Suchanfragen mit demselben Parser und staffeln Sie die Schleife, damit Sie nicht gedrosselt werden.
  • Bleiben Sie bei öffentlichen Metadaten. Respektieren Sie Healthlines ToS und robots.txt, veröffentlichen Sie niemals urheberrechtlich geschützte Artikelkörper, und konsultieren Sie einen Fachmann, bevor Sie sich auf Gesundheitsinhalte verlassen.

Häufig gestellte Fragen

Kann ich Healthline nur mit requests und BeautifulSoup scrapen?

Nicht zuverlässig. Healthline rendert seine Ergebniskarten im Browser mit JavaScript, sodass ein roher requests-Aufruf Status 200 mit leeren Listungen zurückgibt. Sie benötigen etwas, das die Seite zuerst rendert, was das JS-Token der Crawling API zusammen mit den Optionen ajax_wait und page_wait erledigt, bevor BeautifulSoup das HTML überhaupt sieht.

Benötige ich das normale Token oder das JS-Token für Healthline?

Das JS-Token. Das normale Token ruft statisches HTML ab, das bei Healthline dieselbe leere Hülle ist, die ein einfacher Abruf zurückgibt. Das JS-Token rendert die Seite in einem echten Browser, bevor es das HTML zurückgibt, sodass die Artikelkarten vorhanden sind, wenn BeautifulSoup sie parst.

Welche Daten sollte ich von Healthline sammeln?

Beschränken Sie sich auf öffentliche Metadaten: Artikeltitel, URL, Autor, Veröffentlichungs- oder Aktualisierungsdatum, Kategorie und die kurze Zusammenfassung, die auf öffentlichen Seiten angezeigt wird. Scrapen und veröffentlichen Sie keine vollständigen Artikelkörper. Healthlines Artikel sind urheberrechtlich geschützte redaktionelle Inhalte, sodass der sichere und vertretbare Umfang Struktur und Zusammenfassungen für Recherchen sind, nicht der Text selbst.

Wie exportiere ich die gescrapten Daten in CSV?

Erstellen Sie eine Liste von Dictionaries, eines pro Artikel, und übergeben Sie sie dann an pandas mit pd.DataFrame(data).to_csv("healthline_articles.csv", index=False). Der save_to_csv-Helper in diesem Leitfaden umschließt genau das. Da jede Zeile nur flache Metadatenfelder enthält, öffnet sich die CSV sauber in jeder Tabellenkalkulation oder lädt sich wieder in pandas für die Analyse.

Meine Selektoren geben leere Strings zurück. Was hat sich geändert?

Höchstwahrscheinlich Healthlines Markup. Die gehashten Klassennamen, auf die der Parser angewiesen ist, ändern sich bei jedem Deploy, und ein Redesign kann die Autorenzeile oder die Datum-Hooks umbenennen. Untersuchen Sie eine Live-Seite in den Entwicklertools Ihres Browsers und aktualisieren Sie die Selektoren. Regelmäßige Selektorwartung ist für jeden Produktions-Scraper normal.

Sind die gescrapten Gesundheitsinformationen sicher, um sich darauf zu verlassen?

Nein. Behandeln Sie gescrapte Zeilen als Metadaten für Katalogisierung und Recherche, nicht als medizinische Ratschläge. Gesundheitsinformationen ändern sich und hängen vom Kontext ab, den ein einzelnes Feld nicht erfassen kann. Konsultieren Sie also einen qualifizierten Mediziner oder Rechtsanwalt, bevor Sie etwas davon handeln oder weiterverbreiten. Für vollständige Inhalte oder Massenweiterverbreitung fordern Sie eine Genehmigung oder Lizenz von Healthline an, anstatt die Körper zu scrapen.

Jetzt loslegen

Crawlen Sie jede Website im großen Maßstab, ohne gegen die Infrastruktur zu kämpfen.

Crawlbase übernimmt Proxys, Fingerprints und CAPTCHAs, damit Ihr Team Datenpipelines ausliefert, statt Crawl-Infrastruktur zu pflegen. 1.000 Anfragen kostenlos, keine Karte erforderlich.

Self-Service · Kein Verkaufsgespräch erforderlich · Enterprise-Crawl-Volumen verfügbar