Bloomberg ist eine der einflussreichsten Finanznachrichten- und Marktplattformen im offenen Web. Seine Rubrik- und Themenseiten veröffentlichen einen stetigen Strom von Überschriften zu Technologie, Märkten, Wirtschaft und Politik, jede mit einem Link, einem Veröffentlichungs-Zeitstempel und der Rubrik, zu der sie gehört. Analysten verfolgen, was einen Markt bewegt, Forscher kartieren Berichterstattungstrends im Laufe der Zeit, und Produktteams überwachen, welche Geschichten auf welchen Schreibtischen auftauchen. All dieses Signal liegt im öffentlichen Eintrags-Layout einer Rubrikseite, bevor Sie jemals einen Artikel öffnen.
Diese Anleitung zeigt Ihnen, wie Sie Bloomberg scrapen mit JavaScript und Node.js unter Verwendung von Cheerio. Sie bauen einen kleinen, ausführbaren Scraper, der eine öffentliche Bloomberg-Rubrikseite über die Crawling API abruft, die Überschrift, den Artikellink, den Veröffentlichungs-Zeitstempel und die Rubrik für jede Geschichte auf der Seite parst und das Ergebnis als JSON und CSV exportiert. Der gesamte Walkthrough beschränkt sich auf öffentliche Überschriften- und Link-Metadaten. Er berührt nicht den vollständigen Artikeltext, und der Abschnitt zur Rechtslage gegen Ende ist kein Boilerplate-Text, weil Bloombergs redaktionelle Inhalte urheberrechtlich geschützt sind. Lesen Sie ihn, bevor Sie dies auf ein reales Volumen anwenden.
Was Sie bauen werden
Ein Node.js-Skript, das eine öffentliche Bloomberg-Rubrik-URL entgegennimmt, das gerenderte HTML über die Crawling API abruft und einen strukturierten Datensatz für jeden Story-Link auf der Eintrags-Seite extrahiert. Wir verwenden den Technologie-Abschnitt als durchgehendes Beispiel und sammeln diese öffentlichen Eintrags-Felder pro Story:
- Überschrift die Artikelüberschrift, die auf der Eintrags-Karte angezeigt wird.
- Link die URL zum einzelnen Artikel auf bloomberg.com.
-
Veröffentlicht der Veröffentlichungs-Zeitstempel aus dem
time-Element der Karte, als ISO-Datum. - Rubrik die Rubrik oder das Thema, unter dem die Story eingereicht wurde, zum Beispiel "Technology".
Beachten Sie, was bewusst fehlt: der Artikeltext, die Zusammenfassung und alle Medien. Dieser Scraper sammelt nur Links und Metadaten, niemals den urheberrechtlich geschützten Text hinter jeder Überschrift.
Warum eine einfache Anfrage bei Bloomberg scheitert
Wenn Sie eine Bloomberg-Rubrik-URL mit einem einfachen HTTP-Client anfragen, bekommen Sie selten eine nutzbare Eintrags-Liste zurück. Zwei Dinge arbeiten gegen Sie. Erstens erstellt Bloomberg seine Rubrikseiten im Browser mit JavaScript, sodass das anfängliche HTML eine nahezu leere Hülle ist, bis die Skripte der Seite ausgeführt werden und die Story-Karten befüllt werden. Zweitens markiert Bloomberg automatisierten Datenverkehr aggressiv: Datacenter-IPs und Anfragemuster, die nicht wie ein echter Browser aussehen, werden herausgefordert, ratenbegrenzt oder blockiert, bevor sie jemals die gerenderten Überschriften erreichen.
Ein funktionierender Bloomberg-Scraper braucht also zwei Dinge in einer Anfrage: einen Browser, der die Seite tatsächlich rendert, und eine IP, die die Plattform als echten Besucher erkennt. Sie können das selbst mit einem Headless-Browser und einem Pool von rotierenden Residential-Proxys zusammenbauen, aber das Zusammenfügen und die Wartung dieser Komponenten ist der größte Teil der Arbeit. Die Crawling API bündelt beides in einem einzigen Aufruf: Sie senden die URL, sie rendert die Seite hinter einer vertrauenswürdigen IP und gibt fertiges HTML zum Parsen mit Cheerio zurück.
Die Crawling API gibt Ihnen zwei Token: ein normales und ein JavaScript-Token. Bloomberg benötigt die Seite, die in einem echten Browser gerendert wird, also verwenden Sie für jede Anfrage in diesem Guide Ihr JavaScript-Token. Das normale Token gibt die ungerenderte Hülle zurück und Ihre Selektoren kommen leer zurück.
Voraussetzungen
Sie benötigen einige Dinge, bevor Sie mit dem Programmieren beginnen. Keines davon dauert lange.
Grundlegende JavaScript- und Node.js-Kenntnisse. Sie sollten in der Lage sein, ein Node-Skript zu schreiben und auszuführen, konzeptionell mit dem DOM zu arbeiten und Pakete mit npm zu installieren. Wenn Sie neu bei Node sind, helfen die offiziellen Docs und jeder Einsteigerkurs, um das Niveau zu erreichen, das dieses Tutorial voraussetzt. Unser Guide zum Erstellen eines Web-Scrapers mit Node.js behandelt die Grundlagen.
Node.js 16 oder neuer. Bestätigen Sie Ihre Version mit node --version. Falls nicht installiert, installieren Sie es von der Node.js-Website oder über einen Versionsmanager wie nvm.
Ein Crawlbase-Konto und Token. Registrieren Sie sich, öffnen Sie Ihr Dashboard und kopieren Sie Ihr JavaScript-Token von der Kontodokumentationsseite. Der Free-Tier gibt Ihnen bis zu 20.000 Anfragen ohne Kreditkarte, und Sie zahlen nur für erfolgreiche Anfragen. Behandeln Sie das Token wie ein Passwort: Es authentifiziert Ihre Anfragen, also halten Sie es aus der Versionskontrolle heraus.
Projekt einrichten
Erstellen Sie einen Projektordner, initialisieren Sie ihn und installieren Sie die beiden Bibliotheken, die der Scraper benötigt.
node --version mkdir bloomberg-scraper && cd bloomberg-scraper npm init -y npm install crawlbase cheerio
Zwei Abhängigkeiten erledigen die Arbeit: crawlbase ist der offizielle Node-Client für die Crawling API, und cheerio parst das zurückgegebene HTML mit einer jQuery-ähnlichen API, sodass Sie einzelne Felder per CSS-Selektor extrahieren können. Erstellen Sie eine Datei namens scraper.js in diesem Ordner und fügen Sie den Code aus den folgenden Schritten hinzu.
Schritt 1: Die gerenderte Rubrikseite abrufen
Beginnen Sie damit, die fertige Seite zu erhalten. Importieren Sie die CrawlingAPI-Klasse, initialisieren Sie sie mit Ihrem JavaScript-Token und fordern Sie eine öffentliche Bloomberg-Rubrik-URL an. Das frühere Tutorial verwendete den Technologie-Abschnitt, also machen wir dasselbe. Das Überprüfen des Statuscodes vor dem Parsen hält Fehler sichtbar statt still.
const { CrawlingAPI } = require('crawlbase'); const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' }); const bloombergPageURL = 'https://www.bloomberg.com/technology'; api .get(bloombergPageURL) .then((response) => { if (response.statusCode === 200) { console.log(response.body.slice(0, 500)); } }) .catch((error) => console.error('API request error:', error));
Führen Sie das Skript mit node scraper.js aus und Sie sollten echtes Bloomberg-Rubrik-Markup am Anfang des Bodys sehen, keine abgespeckte Hülle. Das bestätigt, dass das Rendering funktioniert, bevor Sie einen einzigen Selektor schreiben. Die Crawling API verwendet das von Ihnen bereitgestellte JavaScript-Token, um die Seite in einem echten Browser zu rendern, sodass die Story-Karten im zurückgegebenen HTML vorhanden sind.
Diese erste Anfrage hat gerade eine vollständig gerenderte Bloomberg-Technologieseite zurückgegeben, ohne einen Headless-Browser oder einen Proxy auf Ihrer Seite. Die Crawling API führt die Seite in einem echten Browser aus, rotiert serverseitig durch Residential-IPs und handhabt die Herausforderungen, die Bloomberg Scrapern zuwirft, sodass Sie fertiges HTML aus einem Aufruf erhalten. Richten Sie es zunächst auf eine öffentliche Rubrikseite im Free-Tier, dann fügen Sie Ihren Parser hinzu.
Schritt 2: Jede Überschrift mit Cheerio parsen
Mit gerendertem HTML in der Hand laden Sie es in Cheerio und durchlaufen die Story-Links. Auf einer Bloomberg-Rubrikseite ist jeder Artikel über einen Anker erreichbar, dessen href auf einen /news/articles/-Pfad zeigt, und der Rubrik-Titel befindet sich in einem Eyebrow-Element oberhalb der Eintrags-Liste. Das frühere Tutorial las die Rubrik aus .Eyebrow_sectionTitle-Wew2fboZsjA- a und das Veröffentlichungsdatum aus dem time-Element der Seite über sein datetime-Attribut, also verwenden wir diese wieder und sammeln einen Datensatz pro Story-Link. Das defensive Lesen jedes Felds verhindert, dass ein fehlender Wert den Lauf abstürzen lässt.
const cheerio = require('cheerio'); function parseDataFromHTML(html) { const $ = cheerio.load(html); const seen = new Set(); const results = { section: '', articles: [], }; // Section / topic title from the eyebrow element results.section = $('.Eyebrow_sectionTitle-Wew2fboZsjA- a').first().text().trim() || 'Technology'; // One record per public article link on the listing $('a[href*="/news/articles/"]').each((_, element) => { const anchor = $(element); const headline = anchor.text().replace(/\n\s+/g, ' ').trim(); let link = anchor.attr('href'); if (!headline || !link) return; if (link.startsWith('/')) { link = new URL(link, 'https://www.bloomberg.com').href; } if (seen.has(link)) return; // skip duplicate links seen.add(link); // Published timestamp from a nearby time element, if present const timeAttr = anchor .closest('article') .find('time') .attr('datetime'); const published = timeAttr ? timeAttr.split('T')[0] : ''; results.articles.push({ headline, link, published: published || 'Date not available', section: results.section, }); }); return results; }
Einige Details halten dies der Seite treu. Der Rubrik-Titel kommt aus dem .Eyebrow_sectionTitle-Wew2fboZsjA--Anker, genau wie der frühere Parser ihn las. Jede Story wird durch einen Anker gefunden, der auf /news/articles/ zeigt, und wir lösen relative Pfade zu absoluten bloomberg.com-URLs auf, damit der Link außerhalb der Seite funktioniert. Ein Set entfernt doppelte Links, da derselbe Artikel häufig in mehr als einem Modul auf einer Rubrikseite erscheint. Das Veröffentlichungsdatum wird aus dem datetime-Attribut eines nahen time-Elements gelesen und mit split('T')[0] auf sein ISO-Datum gekürzt, derselbe Ansatz, den das Original für den Artikel-Zeitstempel verwendete.
Bloombergs generierte Klassennamen (der Eyebrow_*-Suffix oben) ändern sich ohne Vorankündigung, und Rubrikseiten ordnen ihre Module oft neu an. Behandeln Sie die Selektoren als Ausgangssvorlage, nicht als feste Vereinbarung. Wenn die Überschrift oder Rubrik leer zurückkommt, untersuchen Sie erneut die Live-Seite in den Entwicklertools Ihres Browsers und aktualisieren Sie den Selektor. Periodische Selektor-Wartung ist bei jedem Produktions-Scraper normal, kein Zeichen dafür, dass etwas kaputt ist.
Schritt 3: Das vollständige Skript mit JSON- und CSV-Export zusammenbauen
Verbinden Sie nun den Abruf und das Parsen zu einem ausführbaren Skript und schreiben Sie dann die Datensätze sowohl als JSON als auch als CSV auf die Festplatte. Das frühere Guide speicherte das rohe HTML in einem zweiten Durchgang in eine Datei und parste es; ein einziges Skript hält die beweglichen Teile überschaubar und erledigt dieselbe Aufgabe von Anfang bis Ende.
const fs = require('fs'); const { CrawlingAPI } = require('crawlbase'); const cheerio = require('cheerio'); const api = new CrawlingAPI({ token: 'YOUR_CRAWLBASE_TOKEN' }); async function crawl(pageUrl) { const response = await api.get(pageUrl); if (response.statusCode === 200) return response.body; console.error(`Request failed: ${response.statusCode}`); return null; } function toCsv(rows) { const headers = ['headline', 'link', 'published', 'section']; const escape = (value) => `"${String(value).replace(/"/g, '""')}"`; const lines = [headers.join(',')]; for (const row of rows) { lines.push(headers.map((h) => escape(row[h])).join(',')); } return lines.join('\n'); } async function main() { const url = 'https://www.bloomberg.com/technology'; const html = await crawl(url); if (!html) return; const data = parseDataFromHTML(html); fs.writeFileSync('bloomberg.json', JSON.stringify(data, null, 2)); fs.writeFileSync('bloomberg.csv', toCsv(data.articles)); console.log(`Saved ${data.articles.length} headlines to JSON and CSV`); } main();
Fügen Sie die parseDataFromHTML-Funktion aus Schritt 2 in dieselbe Datei ein, damit main sie aufrufen kann. Führen Sie es mit node scraper.js aus und Sie erhalten zwei Dateien: bloomberg.json mit den vollständigen strukturierten Datensätzen und bloomberg.csv, die direkt in einer Tabellenkalkulation geöffnet werden kann. Der toCsv-Helfer maskiert jedes Feld und verdoppelt eingebettete Anführungszeichen, was hier wichtig ist, weil Überschriften häufig Kommas enthalten.
Wie die Ausgabe aussieht
Die JSON-Datei enthält die Rubrik und ein Objekt pro Überschrift, jedes mit dem Überschriftentext, dem Artikellink, dem Veröffentlichungsdatum und der Rubrik, aus der es stammt. Unten gezeigte Überschriften und Links sind illustrative Platzhalter, keine Live-Daten.
{ "section": "Technology", "articles": [ { "headline": "Chipmaker Delays Second Plant as Subsidies Stay in Flux", "link": "https://www.bloomberg.com/news/articles/example-chip-delay", "published": "2024-01-18", "section": "Technology" }, { "headline": "Cloud Provider Posts Record Quarter on AI Demand", "link": "https://www.bloomberg.com/news/articles/example-cloud-quarter", "published": "2024-01-17", "section": "Technology" } ] }
Die CSV spiegelt dieselben Überschriftenzeilen mit einer Kopfzeile wider, sodass sie direkt in Excel, Google Sheets oder jede Datenpipeline fällt, die durch Trennzeichen getrennte Dateien liest.
headline,link,published,section "Chipmaker Delays Second Plant as Subsidies Stay in Flux","https://www.bloomberg.com/news/articles/example-chip-delay","2024-01-18","Technology" "Cloud Provider Posts Record Quarter on AI Demand","https://www.bloomberg.com/news/articles/example-cloud-quarter","2024-01-17","Technology"
Über Rubriken und Seiten skalieren
Eine Rubrikseite ist eine Demo; ein echter Auftrag verfolgt mehrere Ressorts über die Zeit. Bloomberg stellt eine Reihe öffentlicher Rubrik-URLs bereit (Technologie, Märkte, Wirtschaft, Politik und mehr), sodass Sie über sie schleifen, jede über die Crawling API abrufen, mit derselben Funktion parsen und die Ergebnisse zusammenführen können. Da jede Rubrikseite dieselbe Eintrags-Struktur teilt, funktioniert der bereits geschriebene Parser für alle ohne Änderungen.
async function scrapeSections(sections) { const all = []; for (const path of sections) { const url = `https://www.bloomberg.com/${path}`; const html = await crawl(url); if (!html) continue; const { articles } = parseDataFromHTML(html); all.push(...articles); console.log(`${path}: ${articles.length} headlines`); // Pace requests so you stay under the rate limit await new Promise((r) => setTimeout(r, 2000)); } return all; } // scrapeSections(['technology', 'markets', 'economics']);
Für große oder wiederholte Läufe überträgt sich dasselbe Abruf-dann-Parse-Muster direkt auf den asynchronen Crawler, der viele URLs in die Warteschlange stellt und Ergebnisse an Sie zurückschiebt statt bei jeder Anfrage zu blockieren. Für mehr zu gerenderten, JavaScript-lastigen Seiten wie diesen lesen Sie unseren Guide zum Crawlen von JavaScript-Websites, und für den weiteren Kontext unsere Notizen zu großangelegtem Finanz-Scraping.
Entsperrt bleiben
Selbst wenn das Rendering gehandhabt wird, beobachtet Bloomberg Datenverkehr, der wie ein Scraper aussieht. Einige Gewohnheiten halten einen Lauf gesund, und sie gelten für jedes schwierige kommerzielle Ziel.
- Passen Sie Ihre Anfragen an. Führen Sie eine Verzögerung zwischen Rubrik-Abrufen ein statt die Website in einer engen Schleife zu bombardieren. Das Verteilen von Anfragen ist der wichtigste Einzelfaktor, um unter Bloombergs Ratenlimits zu bleiben.
- Verlassen Sie sich auf Rotation. Ein Pool von Residential-IPs verteilt Anfragen über viele reale Benutzeradressen, sodass keine einzelne ein Limit oder eine Herausforderung auslöst. Die Crawling API erledigt das für Sie; wenn Sie Ihren eigenen Stack aufbauen, ist das der Teil, den Sie richtig hinbekommen müssen.
- Lesen Sie die Statuscodes. Ein Lauf, der beginnt, Herausforderungen oder Nicht-200-Antworten zurückzugeben, signalisiert Ihnen, dass die aktuelle Rate oder IP-Stufe nicht mehr ausreicht. Behandeln Sie das als Signal zum Zurückschalten, nicht als Rauschen zum Ignorieren.
Das umfassendere Playbook finden Sie in unserem Guide zum Scrapen von Websites ohne geblockt zu werden.
Ist es legal, Bloomberg zu scrapen?
Ob das Scrapen von Bloomberg erlaubt ist, hängt von Bloombergs Nutzungsbedingungen, Ihrer Jurisdiktion und dem Verwendungszweck der Daten ab. Bloombergs Bedingungen schränken den automatisierten Zugriff und die Wiederverwendung seiner Inhalte ein, daher kann Scraping gegen diese Bedingungen verstoßen, unabhängig davon, wie sorgfältig Ihre Tools sind. Keiner der hier gezeigten Codes ändert das; er macht nur den technischen Teil funktionsfähig. Lesen Sie Bloombergs Nutzungsbedingungen und seine robots.txt, respektieren Sie alle dort angegebenen Ratenerwartungen und behandeln Sie beide als Grenze für das, was Sie sammeln. Kritisch: Scrapen Sie niemals etwas hinter einem Login oder einer Paywall: Ein Großteil von Bloombergs Berichterstattung ist gesperrt, und das Umgehen dieser Sperre ist sowohl ein Verstoß gegen die Bedingungen als auch in vielen Ländern ein rechtliches Vergehen.
Dieser Guide ist bewusst auf öffentliche Überschriften- und Link-Metadaten beschränkt: den Überschriftentext, die Artikel-URL, den Veröffentlichungs-Zeitstempel und die Rubrik, unter der eine Story eingereicht wurde, alles sichtbar auf einer Rubrikseite ohne Login. Das ist sehr verschieden vom Artikel selbst. Bloombergs Berichterstattung, Analysen und Medien sind urheberrechtlich geschützte Werke. Scrapen, speichern oder verbreiten Sie keinen vollständigen Artikeltext, keine Zusammenfassungen oder Bilder, und erstellen Sie kein derivatives Archiv, das Bloombergs redaktionelle Ausgabe reproduziert. Das Sammeln einer Überschrift und eines Links, damit ein Leser zum Original auf bloomberg.com klicken kann, ist eine normale, linkgeführte Nutzung; das Kopieren des Textkörpers hinter diesem Link ist es nicht. Wenn ein Feld, das Sie berühren, jemals identifizierbare Personen einbezieht, gilt Datenschutzrecht wie die DSGVO und der CCPA zusätzlich zum Urheberrecht, was ein weiterer Grund ist, bei sachlichen Eintrags-Metadaten zu bleiben.
Wenn Ihr Projekt mehr als öffentliche Überschriften benötigt, ist der richtige Weg ein sanktionierter, kein ausgefeilterer Scraper. Bloomberg bietet offizielle und lizenzierte Datenprodukte an, einschließlich seines Terminals und Enterprise-Daten-Feeds, die Marktdaten und Inhalte unter klaren kommerziellen Bedingungen, Zuordnungsregeln und Wiederverwendungsrechten liefern. Das sind die richtigen Tools, wenn Sie vollständige Inhalte, garantierte Struktur, hohes Volumen oder das Recht zur Weiterverteilung benötigen. Wenn Sie unsicher sind, ob eine Nutzung erlaubt ist, holen Sie eine Lizenz oder eine Datenvereinbarung ein, statt Stille als Zustimmung zu behandeln. Für einen breiteren Überblick über sanktionierte Optionen lesen Sie unseren Überblick über die besten Finanzdatenanbieter der Welt.
Wichtigste Erkenntnisse
- Bloomberg rendert Einträge clientseitig und blockiert stark. Eine einfache Anfrage gibt eine leere Hülle oder eine Herausforderung zurück, also müssen Sie die Seite hinter einer vertrauenswürdigen IP rendern, indem Sie das JavaScript-Token verwenden, bevor Sie parsen.
- Die Crawling API erledigt beides in einem Aufruf. Sie rendert die Seite in einem echten Browser, rotiert Residential-IPs und handhabt Herausforderungen, gibt fertiges HTML zurück, das Sie mit Cheerio parsen.
-
Cheerio extrahiert die öffentlichen Felder. Finden Sie jeden
/news/articles/-Anker, lesen Sie Überschrift, Link, Veröffentlichungs-Zeitstempel und Rubrik, deduplizieren Sie nach Link und erwarten Sie, dass die generierten Klassennamen veralten. - Skalieren und exportieren. Schleifen Sie über Bloombergs öffentliche Rubrik-URLs, passen Sie Ihre Anfragen an und schreiben Sie strukturierte Datensätze sowohl nach JSON als auch CSV; greifen Sie auf den asynchronen Crawler zurück, wenn das Volumen wächst.
- Nur Überschriften und Links. Bloombergs Artikeltext und Medien sind urheberrechtlich geschützt, also scrapen oder verbreiten Sie niemals den Body, berühren Sie niemals etwas hinter einem Login oder einer Paywall, respektieren Sie ToS und robots.txt und bevorzugen Sie Bloombergs offizielle oder lizenzierte Feeds für den Produktionseinsatz.
Häufig gestellte Fragen
Welche Daten kann ich von Bloomberg mit diesem Scraper sammeln?
Dieser Guide sammelt nur öffentliche Eintrags-Metadaten: die Artikelüberschrift, den Artikellink, den Veröffentlichungs-Zeitstempel und die Rubrik, unter der die Story eingereicht wurde, alles sichtbar auf einer Bloomberg-Rubrikseite ohne Login. Er sammelt nicht den Artikeltext, Zusammenfassungen oder Medien, weil dieser Inhalt urheberrechtlich geschützt ist. Die Ausgabe ist eine Reihe von Links und Metadaten, die Sie verwenden können, um die Berichterstattung zu überwachen und zum Originalartikel durchzuklicken.
Warum gibt eine einfache Anfrage unvollständige Daten von Bloomberg zurück?
Weil Bloomberg seine Rubrikseiten clientseitig mit JavaScript erstellt und automatisierten Datenverkehr herausfordert. Eine rohe HTTP-Anfrage von einer Datacenter-IP gibt normalerweise eine leere Hülle oder eine Block-Seite statt der Story-Karten zurück. Um eine vollständige Seite zu erhalten, müssen Sie sie hinter einer vertrauenswürdigen IP rendern, was die Crawling API für Sie übernimmt, wenn Sie das JavaScript-Token verwenden.
Kann ich Bloomberg-Artikel hinter einer Paywall scrapen?
Nein. Dieser Guide ist in diesem Punkt klar: Scrapen Sie niemals etwas hinter einem Login oder einer Paywall. Gesperrte Inhalte sind durch Bloombergs Bedingungen eingeschränkt, und das Umgehen der Sperre kann auch rechtliche Konsequenzen haben. Bleiben Sie bei den öffentlichen Überschriften und Links, die jeder auf einer Rubrikseite sehen kann, und verwenden Sie Bloombergs offizielle oder lizenzierte Produkte, wenn Sie den vollständigen, gesperrten Inhalt benötigen.
Meine Selektoren geben leere Werte zurück. Was hat sich geändert?
Höchstwahrscheinlich Bloombergs Markup. Generierte Klassennamen wie Eyebrow_sectionTitle-Wew2fboZsjA- ändern sich ohne Vorankündigung, und Rubrikseiten ordnen ihre Module oft neu an, sodass Selektoren, die letzten Monat funktionierten, brechen können. Untersuchen Sie erneut eine Live-Seite in den Entwicklertools Ihres Browsers, aktualisieren Sie die Selektoren in parseDataFromHTML, und Sie sind wieder einsatzbereit. Periodische Selektor-Wartung ist bei jedem Produktions-Scraper normal.
Kann ich einen Bloomberg-Scraper in einer anderen Sprache als JavaScript erstellen?
Ja. Dieser Guide verwendet JavaScript mit Cheerio, aber derselbe Ansatz funktioniert in jeder Sprache. Die Crawling API hat Bibliotheken und SDKs für mehrere Sprachen, also rufen Sie das gerenderte HTML auf dieselbe Weise ab und parsen es mit dem HTML-Parser, den Ihr Stack bevorzugt, beispielsweise BeautifulSoup in Python. Die Selektoren und Felder bleiben gleich; nur die Parsing-Syntax ändert sich.
Bietet Bloomberg einen offiziellen Daten-Feed an?
Ja. Bloomberg bietet offizielle und lizenzierte Datenprodukte an, einschließlich seines Terminals und Enterprise-Daten-Feeds, die Marktdaten und Inhalte unter klaren kommerziellen Bedingungen und Wiederverwendungsrechten liefern. Wenn Sie vollständige Inhalte, hohes Volumen, garantierte Struktur oder das Recht zur Weiterverteilung benötigen, ist dieser sanktionierte Weg der richtige. Dieser öffentliche-Metadaten-Scraper ist am besten für Recherche, Überwachung und Linksammlung geeignet, bei der eine offizielle Vereinbarung nicht gerechtfertigt ist.
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.
