Skip to content

Der Twitter (X) Scraper bietet einen kostenlosen Scraper für kleine Projekte sowie eine API der Enterprise-Klasse für groß angelegte Twitter-Datenextraktion, mit integrierter Proxy-Rotation und CAPTCHA-Lösung.

Notifications You must be signed in to change notification settings

bright-data-de/twitter-scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twitter (X) Data Scraper by Bright Data

Promo

Dieses Repository bietet zwei unterschiedliche Methoden zum Sammeln von Twitter-Daten:

  1. Kostenloser Twitter Scraper: Für kleine Projekte und zum Lernen
  2. Enterprise Twitter Scraper API: Für produktionsreife Datenextraktion

Table of Contents

  1. Free Twitter Scraper
  2. Twitter Scraper API
  3. No-Code Scraper Option
  4. Data Collection Approaches
  5. Support & Resources

Free Twitter Scraper

Ideal für kleine Projekte, Experimente und Lernzwecke.

1. Profile Scraping

Extrahiert öffentliche Profildaten von Twitter, einschließlich Namen, Followern, Tweet-Anzahlen und mehr.

Input Requirements:

Parameter Type Required Description
usernames list Yes Liste der zu scrapenden Twitter-Handles

Implementation:

# free_scraper/twitter_profiles.py
usernames = [
    "satyanadella",
    "BillGates", 
    "elonmusk"
]

Sample Output (CSV):

twitter_profiles_data

2. Post Scraping

Sammelt Engagement-Metriken für bestimmte Tweets

Input Requirements:

Parameter Type Required Description
tweet_ids list Yes Liste der zu scrapenden Twitter-Post-IDs

Implementation:

# free_scraper/twitter_posts.py
TWEET_IDS = [
    "1882412972414214544",
    "1879604491764297992",
    "1869427646368792599"
]

Sample Output (JSON):

{
  "tweet_id": "1882412972414214544",
  "author": "MongoDB",
  "content": "We're excited to announce...",
  "engagement": {
    "likes": 29,
    "retweets": 10,
    "views": 3417
  }
}

Limitations

Die kostenlose Methode wird aufgrund von Twitters strengen Anti-Bot-Schutzmaßnahmen nicht für Scraping im großen Maßstab empfohlen. Zu den wichtigsten Einschränkungen gehören:

  • Ratenbegrenzung: Twitter blockiert Anfragen nach wenigen Scrapes.
  • IP-Blocking: Häufiges Scraping von derselben IP-Adresse kann zu Sperren führen.
  • Begrenzte Skalierbarkeit: Nicht geeignet für Daten-Sammlung in hohem Volumen.
  • Eingeschränkte Datenfelder: Liefert nur grundlegende Profil- und Tweet-Daten, ohne erweiterte Filteroptionen.

Twitter Scraper API

Eine robuste, skalierbare und zuverlässige Lösung für groß angelegte Twitter-Datenextraktion. Entwickelt für Unternehmen und Entwickler, die hochwertige Echtzeitdaten ohne Infrastruktur-Aufwand benötigen.

Key Features

  • Skalierbar & Zuverlässig: Optimiert für Daten-Sammlung in hohem Volumen und in Echtzeit
  • Anti-Blocking: Integrierte Proxy-Rotation und CAPTCHA solving
  • Rechtskonformität: Vollständig DSGVO- und CCPA-konform
  • Globale Abdeckung: Zugriff auf Daten aus jeder Region und Sprache
  • Echtzeitdaten: Aktuelle Daten mit minimaler Latenz
  • Erweiterte Filterung: Passen Sie die Datenextraktion mit präzisen Filtern an
  • Pay-as-You-Go: Sie zahlen nur für erfolgreiche Antworten
  • Kostenlose Testversion: Beinhaltet 20 kostenlose API-Aufrufe für den Einstieg
  • Dedizierter Support: Technische Unterstützung rund um die Uhr

👉 Mehr erfahren: Bright Data Twitter Scraper API

Quick Start Guide

  • Registrieren: Erstellen Sie ein Bright Data Konto
  • API-Token abrufen: Holen Sie sich Ihren API key aus dem Dashboard
  • Endpunkt auswählen: Wählen Sie aus den unten verfügbaren API-Endpunkten

1. Scrape Posts by URL

Extrahieren Sie detaillierte Engagement-Metriken und Inhalte für bestimmte Tweets anhand ihrer URLs.

twitter-posts-scraper

Request Parameters:

Field Type Required Description
url string Yes Vollständige Twitter-Post-URL

Example Request:

# twitter_api/twitter_posts.py
posts = [
    {"url": "https://x.com/OpenAI/status/1885406586136383634"},
    {"url": "https://x.com/CNN/status/1796673270344810776"}
]

Response Schema:

{
    "post": {
        "author": {
            "name": "OpenAI",
            "followers": 3930255,
            "profileImage": "https://pbs.twimg.com/profile_images/1885410181409820672/ztsaR0JW_normal.jpg",
            "bio": "OpenAI's mission is to ensure that artificial general intelligence benefits all of humanity. We're hiring: https://t.co/dJGr6Lg202",
        },
        "content": {
            "text": "OpenAI o3-mini is now available in ChatGPT and the API.\n\nPro users will have unlimited access to o3-mini and Plus & Team users will have triple the rate limits (vs o1-mini).\n\nFree users can try o3-mini in ChatGPT by selecting the Reason button under the message composer.",
            "postedAt": "2025-01-31T19:15:33.000Z",
            "id": "1885406586136383634",
        },
        "engagement": {
            "replies": 1004,
            "reposts": 1997,
            "likes": 13420,
            "views": 2858777,
            "quotes": 684,
            "bookmarks": 1546,
        },
    }
}

👉 Hier werden nur die wichtigsten Felder angezeigt. Sehen Sie sich die vollständige JSON response mit allen Details an. Testen Sie jetzt unseren dedizierten Twitter Posts Scraper.

2. Scrape Profile Data

Extrahieren Sie umfassende Profilinformationen, einschließlich aktueller Posts und Engagement-Metriken.

twitter-profile-scraper

Request Parameters:

Field Type Required Description
url string Yes Twitter-Profil-URL
max_number_of_posts number No Anzahl der abzurufenden aktuellen Posts

Example Request:

# twitter_api/twitter_profile_posts.py
profiles = [
    {"url": "https://x.com/satyanadella", "max_number_of_posts": 50},
    {"url": "https://x.com/BillGates", "max_number_of_posts": 35}
]

Response Schema:

{
    "profile": {
        "name": "Satya Nadella",
        "handle": "satyanadella",
        "role": "Chairman and CEO at Microsoft",
        "isVerified": true,
        "profileImage": "https://pbs.twimg.com/profile_images/1221837516816306177/_Ld4un5A_normal.jpg",
        "website": "http://www.microsoft.com/ceo",
        "joinedDate": "2009-02-11T04:45:34.000Z",
        "stats": {"following": 286, "followers": 3356268, "postsCount": 1859},
    },
    "posts": [
        {
            "id": "1807114709499523208",
            "content": "What a final!!! Congrats, India, and well played, South Africa. Super World Cup... let us have more cricket in the West Indies and USA!!",
            "postedAt": "2024-06-29T18:11:35.000Z",
            "engagement": {
                "replies": 712,
                "reposts": 10785,
                "likes": 133591,
                "views": 2029775,
            },
        },
        {
            "id": "1726509045803336122",
            "content": "We remain committed to our partnership with OpenAI and have confidence in our product roadmap, our ability to continue to innovate with everything we announced at Microsoft Ignite, and in continuing to support our customers and partners. We look forward to getting to know Emmett",
            "postedAt": "2023-11-20T07:53:28.000Z",
            "engagement": {
                "replies": 4524,
                "reposts": 14480,
                "likes": 89773,
                "views": 41675720,
            }
        },
    ],
}

👉 Hier werden nur die wichtigsten Felder angezeigt. Sehen Sie sich die vollständige JSON response mit allen Details an. Testen Sie jetzt unseren dedizierten Twitter Profile Scraper.

3. Date-Range Tweet Collection

Rufen Sie Posts innerhalb eines bestimmten Datumsbereichs ab.

Request Parameters:

Parameter Type Required Description
url string Yes Twitter-Profil-URL
start_date string Yes Startdatum (ISO-Format)
end_date string Yes Enddatum (ISO-Format)

Example Request:

# twitter_api/twitter_posts_date_range.py
profiles = [
    {
        "url": "https://x.com/satyanadella",
        "start_date": "2025-01-15T09:00:00.000Z",
        "end_date": "2025-01-31T23:00:00.000Z",
    },
    {"url": "https://x.com/cnn", "start_date": "2025-01-01", "end_date": "2025-01-15"},
    {"url": "https://x.com/fabrizioromano", "start_date": "", "end_date": ""},
]

Response Schema:

{
    "post": {
        "author": {
            "name": "Satya Nadella",
            "handle": "satyanadella",
            "role": "Chairman and CEO at Microsoft",
            "isVerified": false,
            "profileImage": "https://pbs.twimg.com/profile_images/1221837516816306177/_Ld4un5A_normal.jpg",
            "followers": 3356282,
            "following": 286,
        },
        "content": {
            "text": "For me, cricket is maybe the only thing that could possibly come close to watching the Excel World Champ on ESPN!",
            "images": ["https://pbs.twimg.com/media/GiF4nePaEAAHQg5.jpg"],
            "externalUrl": "https://techcommunity.microsoft.com/blog/excelblog/congrats-to-the-winners-of-this-years-mewc--mecc/4355651",
            "postedAt": "2025-01-24T22:29:46.000Z",
            "id": "1882918743409676719",
        },
        "engagement": {
            "replies": 102,
            "reposts": 208,
            "likes": 3416,
            "views": 286901,
            "quotes": 39,
            "bookmarks": 127,
        },
    }
}

👉 Hier werden nur die wichtigsten Felder angezeigt. Sehen Sie sich die vollständige JSON response mit allen Details an.

No-Code Scraper Option

Für Nutzer, die eine grafische Oberfläche bevorzugen, bieten wir über unser Control Panel eine No-Code-Lösung an:

  • Konfigurieren Sie Scraper in wenigen Minuten
  • Automatisiert den gesamten Prozess der Daten-Sammlung
  • Direkter Download der Ergebnisse (mehrere Formate)

Ausführliche Anweisungen zur Verwendung des No-Code Scraper finden Sie in unserer Getting Started guide.

Data Collection Approaches

Sie können die folgenden Parameter verwenden, um Ihre Ergebnisse fein abzustimmen:

Parameter Type Description Example
limit integer Maximale Ergebnisse pro Input limit=10
include_errors boolean Fehlerberichte zur Fehlersuche abrufen include_errors=true
notify url Webhook-Benachrichtigungs-URL, um nach Abschluss benachrichtigt zu werden notify=https://notify-me.com/
format enum Ausgabeformat (z. B. JSON, NDJSON, JSONL, CSV) format=json

💡 Pro Tip: Sie können auch auswählen, ob die Daten an einen external storage geliefert werden sollen oder ob sie an einen webhook geliefert werden sollen.

Support & Resources


Interessiert an weiteren Scrapern? Sehen Sie sich die Liste unten an:

About

Der Twitter (X) Scraper bietet einen kostenlosen Scraper für kleine Projekte sowie eine API der Enterprise-Klasse für groß angelegte Twitter-Datenextraktion, mit integrierter Proxy-Rotation und CAPTCHA-Lösung.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages