Zum Hauptinhalt springen
Piloterr
Zurück zum Blog
14. Oktober 2024

Wie man das CMS einer Website mit APIs erkennt: Eine Schritt-für-Schritt-Anleitung

Die Identifizierung des Content-Management-Systems (CMS), das von einer Website verwendet wird, kann wertvolle Einblicke für Unternehmen, Entwickler und Vermarkter bieten. In diesem Artikel werden wir untersuchen, warum es nützlich ist, die CMS-Technologie einer Website zu erkennen, und wie man diese Informationen mithilfe von APIs abrufen kann.

Verwenden Sie die Website Technology API oder unsere allgemeinen Scraper APIs zur Technologieerkennung.

Warum die CMS-Technologie einer Website identifizieren?

Das Verständnis des CMS hinter einer Website ist aus mehreren Gründen essenziell:

  • Wettbewerbsanalyse: Zu wissen, welches CMS Ihre Wettbewerber verwenden, kann Einblicke in deren technologischen Stack, Skalierbarkeit und potenzielle Schwachstellen geben.
  • Technische Partnerschaften: Wenn Sie eine Partnerschaft oder Integration mit einer Website anstreben, hilft das Wissen über das CMS, die Kompatibilität mit Ihren Tools oder Diensten zu bestimmen.
  • Sicherheitsbewusstsein: Einige CMS-Plattformen sind anfälliger für bestimmte Arten von Angriffen als andere. Die Identifizierung eines CMS ermöglicht es Ihnen, potenzielle Sicherheitsrisiken zu bewerten.
  • Anpassungspotenzial: Verschiedene CMS haben unterschiedliche Flexibilitätsgrade. Die Erkennung des CMS hilft dabei festzustellen, wie einfach es wäre, bestimmte Funktionen auf einer Website anzupassen oder zu verbessern.

Kurz gesagt, die Identifizierung des CMS einer Website kann wertvolle technische und strategische Einblicke bieten.

Wie rufe ich CMS-Informationen ab?

Registrieren Sie sich für einen API-Dienst

Mehrere Plattformen bieten APIs an, die CMS-Technologien erkennen, wie Piloterr, BuiltWith und WhatCMS. Für dieses Beispiel verwenden wir die Piloterr API.

  1. Erstellen Sie Ihr Konto: Gehen Sie zum Piloterr-Dashboard und registrieren Sie sich für ein kostenloses oder kostenpflichtiges Konto, je nach Ihren Bedürfnissen.
  2. Holen Sie sich Ihren API-Schlüssel: Nach der Registrierung erhalten Sie einen API-Schlüssel.
  3. Richten Sie Ihre Umgebung ein: Installieren Sie die notwendigen Bibliotheken
Bash
pip install requests

Grundlegender Python-Code

Vergessen Sie nicht, PILOTERR_API_KEY durch Ihren echten API-Schlüssel zu ersetzen. Das Skript geht davon aus, dass die Piloterr API-Antworten in einem für unsere API spezifischen Format vorliegen, daher muss es möglicherweise angepasst werden, je nachdem, welchen Anbieter Sie wählen.

  • Kopieren Sie den Code
  • Erstellen Sie eine neue Datei detect_cms.py
  • Ersetzen Sie den API-Token durch Ihren eigenen
  • Ersetzen Sie die Variable websites nach Bedarf
  • Führen Sie das Skript mit python detect_cms.py aus
Python
import requests
import json

PILOTERR_API_KEY = '' #YOUR-API-KEY-HERE

# Piloterr API URL
url = "https://piloterr.com/api/v2/website/technology"

# Liste der zu überprüfenden Websites
websites = [
    "https://www.piloterr.com",
    "https://www.carreblanc.com",
    "https://www.bobbies.com",
    "https://www.leslipfrancais.fr"
]

# Liste der CMS basierend auf Wappalyzer-Kategorien
cms_list = [
    "1c-bitrix", "3dcartstores", "abicart", "ametys", "amiro.cms",
    "apostrophecms", "arc publishing",
    "asciidoc", "atg", "bigcommerce", "blogger", "bludit",
    "borderfree", "bridgeline idev",
    "broadvision", "ckan", "cms made simple", "cmSimple",
    "concrete5", "contao", "contenido",
    "contensis", "contentful", "craft cms", "cryoblock",
    "danneo cms", "datocms", "day.js",
    "dede", "diazo", "dnn", "dokuwiki", "dotcms", "drupal",
    "dynamicweb", "e107", "easydb",
    "easyengine", "ez publish", "expressionengine",
    "fandom", "flash", "flatpress", "flexcmp",
    "fluxbb", "forestry", "fork cms", "foswiki", "frog cms",
    "gatsby", "getsimple cms", "ghost",
    "gitbook", "grav", "gridsome", "groovy", "halo", "hippo", "hubspot", 
    "hugo", "hybris", "ibm websphere commerce",
    "ikiwiki", "imperia cms", "indexhibit", "instapage",
    "intercom articles", "joomla", "kentico cms",
    "koken", "komodo cms", "liferay", "lightspeed ecommerce",
    "lima", "locomotive cms", "magento",
    "mambo", "markdownguide", "matomo", "mediawiki", "miva",
    "modx", "moodle", "movable type",
    "mybb", "neos", "netcat", "netlifycms", "nopcommerce",
    "odoo", "opencart", "orchard cms",
    "oscommerce", "percussion", "phpbb", "phpmyadmin", "pimcore",
    "plone", "posterous", "prestashop",
    "pyrocms", "rbs change", "rcms", "roadiz cms",
    "rs-site", "saleor", "salesforce commerce cloud",
    "serendipity", "shopify", "shopware", "silverstripe", "sitecore",
    "sitefinity", "sitemap generator",
    "siteor", "smelting", "solodev", "squarespace", "statamic",
    "storyblok", "strikingly", "subrion",
    "textpattern", "tilda", "trac", "typo3 cms", "typo3 neos",
    "umbraco", "umiсms", "vbulletin",
    "viennacms", "virto commerce", "visual composer", "voog",
    "wap review", "webflow", "webgui",
    "weebly", "wix", "woocommerce", "wordpress", "xenforo",
    "xt:commerce", "yii", "zencart", "zendesk",
    "zephir", "zeta producer"
]

# Funktion zum Finden des CMS
def find_cms(technologies):
    for tech in technologies:
        tech_name = tech.lower()
        for cms in cms_list:
            if cms in tech_name:
                return tech
    return "Kein CMS gefunden"

# Funktion zum Abrufen von Technologien und CMS für eine Website
def get_technologies_and_cms(site):
    params = {"query": site}
    headers = {"x-api-key": PILOTERR_API_KEY}
    response = requests.get(url, params=params, headers=headers)
    
    if response.status_code == 200:
        data = response.json()
        technologies = [tech["name"] for tech in data.get("technologies", [])]
        cms = find_cms(technologies)
        return {"cms": cms, "technologies": technologies}
    else:
        return {"technologies": [], "cms": "Fehler beim Abrufen der Daten"}

# Ein Dictionary zum Speichern der Ergebnisse erstellen
results = {}

# Technologien und CMS für jede Website abrufen
for site in websites:
    site_data = get_technologies_and_cms(site)
    results[site] = site_data

# Ergebnisse in JSON konvertieren
json_results = json.dumps(results, indent=2)

# JSON-Ergebnisse ausgeben
print(json_results)

# Optional: JSON in einer Datei speichern
with open("website_technologies_and_cms.json", "w") as f:
    f.write(json_results)

Ergebnisse

Nach der Ausführung erhalten wir eine Tabelle mit dem Namen des Unternehmens, der Anzahl der Investoren und dem Gründungsdatum wie folgt:

JSON
{
  "https://www.piloterr.com": {
    "cms": "Webflow",
    "technologies": [
      "Webflow",
      "jsDelivr",
      "Google Tag Manager",
      "Google Hosted Libraries",
      "Customer.io",
      "reCAPTCHA",
      "jQuery",
      "HubSpot Chat",
      "HubSpot",
      "Google Analytics",
      "core-js",
      "Google Font API",
      "HSTS",
      "Cloudflare",
      "Open Graph",
      "HTTP/3"
    ]
  },
  "https://www.carreblanc.com": {
    "cms": "Magento",
    "technologies": [
      "Magento",
      "Cart Functionality",
      "Sentry",
      "Algolia",
      "MySQL",
      "PHP",
      "Leaflet",
      "Hyva Themes",
      "Tailwind CSS",
      "Vue.js",
      "Alpine.js",
      "Zendesk",
      "reCAPTCHA",
      "Google Tag Manager",
      "Glider.js",
      "Didomi",
      "Splide",
      "Livefyre",
      "core-js",
      "WhatsApp Business Chat",
      "Preact",
      "Google Font API",
      "Font Awesome",
      "Avis Verifies",
      "Cloudflare",
      "Webpack",
      "Open Graph",
      "Module Federation",
      "HTTP/3"
    ]
  },
  "https://www.bobbies.com": {
    "cms": "PrestaShop",
    "technologies": [
      "PrestaShop",
      "Prismic",
      "Doofinder",
      "MySQL",
      "PHP",
      "PayPal",
      "Google Tag Manager",
      "Cloudflare Bot Management",
      "TikTok Pixel",
      "LazySizes",
      "jQuery Migrate",
      "jQuery",
      "Hotjar",
      "Google Analytics",
      "Facebook Pixel",
      "core-js",
      "reCAPTCHA",
      "MailChimp",
      "HSTS",
      "Cloudflare",
      "Open Graph",
      "HTTP/3"
    ]
  },
  "https://www.leslipfrancais.fr": {
    "cms": "Storyblok",
    "technologies": [
      "Storyblok",
      "Cart Functionality",
      "Shopify",
      "Doofinder",
      "Global-e",
      "Secomapp",
      "PayPal",
      "Apple Pay",
      "OneTrust",
      "Google Tag Manager",
      "Glider.js",
      "AB Tasty",
      "New Relic",
      "LazySizes",
      "Klaviyo",
      "core-js",
      "Boomerang",
      "Swiper",
      "Priority Hints",
      "Google Font API",
      "Avis Verifies",
      "Linkedin Insight Tag",
      "HSTS",
      "Cloudflare",
      "Webpack",
      "Open Graph",
      "Module Federation",
      "HTTP/3"
    ]
  }
}

Weitere Artikel

Anleitungen und Neuigkeiten zu Web Scraping, Proxys und Datenextraktion.

Web Scraping

Migration von NetNut: Was tun nach der Netzwerkabschaltung?

Google hat gemeinsam mit dem FBI und Lumen gegen das NetNut/Popa-Proxy-Netzwerk vorgegangen. Wie Sie Ihren Scraping-Stack neu aufbauen, ohne Proxys selbst verwalten zu müssen.

Josselin Liebe
Josselin Liebe
Lesen
Web Scraping

17,99 € in Frankreich, 29,99 € in Deutschland: Preisüberwachung nach Land

Gleiche ERP-Referenz, unterschiedliche Preise je nach Land: Aktionen, Währungen und Sortimente variieren von Shop zu Shop. Datenmodell, API-Beispiele und ein Python-Skript für zuverlässige Preisüberwachung.

Josselin Liebe
Josselin Liebe
Lesen
Web Scraping

Beste Leboncoin-Scraper 2026

Piloterr vs. Apify vs. lobstr.io für Leboncoin-Scraping im Jahr 2026. Preise, Endpunkte und Produktdaten, verifiziert aus offiziellen Quellen am 29. Juni 2026 – einschließlich der rechtlichen Grauzone zwischen öffentlichem und authentifiziertem Scraping.

Josselin Liebe
Josselin Liebe
Lesen

Bereit loszulegen?

Ihre Web-Scraping-API ist nur einen Klick entfernt. Starten Sie mit +500 Credits, ohne Infrastruktur einrichten zu müssen, ohne Proxys zu verwalten und ohne Kreditkarte.

  • +500 Credits
  • Keine Kreditkarte erforderlich
  • Alle Endpunkte enthalten