ChatGPT im Dialog mit Selenium

Wer ChatGPT schon länger nutzt, kennt wahrscheinlich das Lupensymbol, mit dem man alle eigenen Chats nach Stichworten durchsuchen kann.

ChatGPT Suchfunktion

Diese Funktion ist sehr nützlich, wenn man sich daran erinnern kann, welche signifikanten Stichworte im Chat vorkamen. Im Gegensatz zu Perplexity untersützt ChatGPT aber derzeit nicht die Bildung von Gruppen.

Im Gegensatz zu Perplexity unterstützt ChatGPT aber derzeit nicht die Bildung von Gruppen. Mit anderen Worten: Es gibt zwar für jeden Chat bei OpenAI eine eindeutige URL, aber die Lupe ist derzeit der einzige Weg, den OpenAI anbietet, um Chats zu filtern. Selbst wenn es schon eine Gruppeneinteilung wie bei Perplexity gäbe, müsste man die Chats manuell auf die Gruppen verteilen. Das gilt auch im Hinblick auf eine große Zahl von GPTs die ihrerseits solch eine Gruppierung als sinnvoll erscheinen lassen.

Wer jedoch programmieren kann – oder über ChatGPT programmieren lässt, kann einen weiteren Weg beschreiten: Die Seitenleiste von ChatGPT komplett auslesen und so alle URLs mit den Überschriften sammeln und in einer CSV-Datei ablegen. Wobei die entstandene CSV-Datei mit URL-Spalte wiederum Grundlage für eine kleine ChatGPT-GUI ist, mit der man den Browser ansteuert.

Die Python-Quelltexte zum Auslesen der ChatGPT-Seitenleiste sind im Downloadbereich zum Buch

ChatGPT, OpenAI und der blaue Planet“ abgelegt. Aber zunächst ein paar Vorüberlegungen und Fallunterscheidungen:

  • Ist das automatische Auslesen und die Nutzung von Webseiteninhalten legal?
  • Mit welcher Software können Webseiteninhalte automatisch ausgelesen werden?
  • Stellen CAPTCHA-Abfragen ein Problem dar?
  • Wie muss ein Internet-Browser gestartet werden, um danach automatisch abzutasten?

Programme, die Webseiten abtasten, bezeichnet man als WebScraper oder WebCrawler. Derartige Bots können in der Absicht programmiert worden sein, Sicherheitslücken der untersuchten Webseite zu detektieren. Was nun einer Gefahrenabwehr oder einem Hackerangriff dienen kann. Wer seine eigene Webseite abtastet, oder die eigenen Chats ausliest, handelt aber sicher nicht illegal.

In der nachfolgenden Beschreibung wird das Tool Selenium innerhalb von Python Code benutzt.

Damit CAPTCHA-Abfragen nicht zum Problem werden, sollte man schon vor der Abtastung bei OpenAI (bzw. ChatGPT) eingeloggt sein. Es sollte aber kein Browser-Fenster offen sein, denn der Browser wird idealerweise durch ein Skript gestartet und zwar im Debug-Modus auf Port 9222.

Was uns natürlich auch ChatGPT erklären kann:

[ChatGPT-4o] Welchen Nutzen hat Port 9222 ?

…..Tools wie Puppeteer, Selenium, oder Playwright nutzen diesen Port für Browsersteuerung.

Wer Spaß daran hat, kann jeden der vorherigen Aufzählungspunkte an ChatGPT, Perplexity, Claude oder einen anderen Chatbot zur Beantwortung weiterleiten. Und dieser Blogbeitrag beruht ganz wesentlich auch auf solchen Recherchen.

Der Sprung in die Praxis beginnt mit einem Blick auf die Seitenleiste von ChatGPT, die die Titel der Chats chronologisch in zeitlich sortierte Gruppen aufteilt:

ChatGPT-Benutzeroberfläche mit Seitenleiste
ChatGPT-Benutzeroberfläche mit Seitenleiste

Erst wenn man den Scrollbar der Seitenleiste nach unten bewegt, werden blockweise auch ältere Chats angezeigt. Die komplette Durchsicht von z.B. 500 vorhandenen Chats kann damit schon ein paar Sekunden dauern. Und wer kein Abo bei OpenAI hat, liegt bei 500 Chats locker über 30 Sekunden. Und auch der Python-Code, der Selenium nutzt, muss auf solche Wartezeiten Rücksicht nehmen! Das Ziel ist nun die Generierung einer CSV-Datei mit den Bezeichnungen für alle Chats nach folgendem Muster:

URL;Titel;Gruppe

https://chatgpt.com/c/56789c-3456;Port 9222 nutzen;0001_heute
https://chatgpt.com/c/45678b-2345;Python lernen;0002_gestern
https://chatgpt.com/c/34567a-1234;ChatGPT Planet;0500_2023

Solch eine 3-spaltige CSV-Datei mit Kommata als Trennzeichen dient dazu, ohne jede Wartezeit z.B. 500 Chatbezeichnungen verfügbar zu haben, und über die URL einen Browser ansteuern zu können. Und da man solch eine CSV-Datei nicht täglich neu erstellt, sollten Wartezeiten beim Auslesen der ChatGPT-Oberfläche kein Problem sein. In der URL kann übrigens auch das verwendete GPT stehen, was durch eine später automatisch erzeugte weitere Tabellenspalte zum Sortierkriterium werden kann. Und so entsteht eine automatische Sortierung von Chats nach dem verwendeten GPT. Aber so weit sind wir noch nicht, denn am Anfang steht der Start des Browsers auf Port 9222:

Eine Batch-Datei start-edge.bat für Windows-Systeme sieht so aus:

„C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe“ — remote-debugging-port=9222 https://chatgpt.com/

Eine genauere Beschreibung ist im Downloadbereich zum Buch abgelegt und bezieht sich auf folgendes entpacktes Unterverzeichnis:

Unterverzeichnis

Auf Windows Systemen werden über scraper.bat lokale Profile für Edge oder Chrome angelegt. Danach wird der gewünschte Browser auf Port 9222 gestartet. Es ist wichtig dort den Login für ChatGPT vorzunehmen. Für nachfolgende Schritte wird so die CAPTCHA-Abfrage vermieden.

Das Skript scraper.bat startet nachfolgend abtaster.py um die Seitenleiste abzutasten und chatgpt_chats.csv zu erzeugen.

Sobald eine gültige 3-spaltige CSV-Datei erzeugt ist, kann diese CSV-Datei über webviewer.py angezeigt werden. Exemlparisch können in der URL-Spalte der CSV-Datei beliebige Webseiten eingetragen werden. Die PyQt5 Oberfläche von webviewer.py sieht so aus:

PyQt5-Oberfläche von webviewer.py
Das jeweils verwendete GPT wird aus der URL extrahiert und in der letzten Spalte „URL-Key“ angezeigt. Die Spalte Gruppe entspricht der zeitlichen Einteilung von ChatGPT. Im Suchfeld eingegebene Begriffe betreffen derzeit allerdings nur den Titel und nicht den Volltext des Chats. Ein Doppelklick auf die gewünschte Zeile zeigt die URL innerhalb der ChatGPT-Oberfläche an.

Das jeweils verwendete GPT wird aus der URL extrahiert und in der letzten Spalte „URL-Key“ angezeigt. Die Spalte Gruppe entspricht der zeitlichen Einteilung von ChatGPT. Im Suchfeld eingegebene Begriffe betreffen derzeit allerdings nur den Titel und nicht den Volltext des Chats. Ein Doppelklick auf die gewünschte Zeile zeigt die URL innerhalb der ChatGPT-Oberfläche an.

Dipl.-Ing. Harald Schmidt arbeitet als Software-Entwickler und Fachbuchautor. Er hat sich auf Bildverarbeitung und Mustererkennung spezialisiert und verfügt über mehr als 30 Jahren Erfahrung.

Vorfahrt für den Gutenberg-Editor, weg mit den Pagebuildern!

Der Gutenberg-Editor ist der Standard-Editor von WordPress seit Version 5.0. Ab der Version WordPress 6.0 ist auch Full Site Editing (FSE) möglich, was bedeutet, dass jetzt auch Header und Footer aus Blöcken zusammengebaut werden können. Voraussetzung ist ein Theme, das FSE-tauglich ist. Im Vergleich zu Pagebuildern bietet der Gutenberg-Editor einige Vorteile, die ihn zu einer attraktiven Wahl für die Erstellung von Inhalten machen.

Weiterlesen

php8 und WordPress? Jetzt upgraden?

Als globales CMS-System Nr. 1 folgt WordPress mit den neuesten Trends der Webentwicklung, um das Erstellen zeitgemäßer Webseiten zu ermöglichen. WordPress ist auf Basis der Programmiersprache php erstellt, deren neueste Version php8 im November 2020 veröffentlicht wurde. Als Betreiber einer Website möchten Sie sicher wissen, was Ihnen die Umstellung konkret bringt und ab wann Sie die neuesten Features nutzen können.

Weiterlesen

Google My Business – Local SEO für gute Rankings vor Ort

Was ist Local SEO?

Für Unternehmen mit einem Ladengeschäft oder einem räumlich begrenzten Wirkungskreis ist Local SEO ein Aspekt der Suchmaschinenoptimierung der besonderes Augenmerk verdient. Bei Anfragen mit örtlichem Bezug wie „Schreinerei in Fürstenfeldbruck“ oder „Pizzeria am Marienplatz in München“ blendet Google eine Box mit Stadtplan und relevanten Firmen ein. Weiterlesen

Marketing im Krisenmodus – was tun?

Vorab einmal das Positive: jede Krise hat auch eine Ende!

Die Menschheit hat Kriege, Hungersnöte und auch Seuchen überstanden, ohne den technischen Standard, den wir heute haben. Insofern besteht berechtigte Hoffnung, dass wir momentan nur eine sehr schwierige Phase durchlaufen. Weiterlesen

Google 2019: zwischen Wahrheit, Fake News & Zensur

Google steht an einem Scheideweg. Die Suchmaschine ist global gesehen ein Fast-Monopolist. Charttechnisch mag die Aktie momentan vielleicht gerade ein Schnäppchen sein, aber der Gesetzgeber wird früher oder später gezwungen sein, die Macht der Datenkrake zu beschränken. Weiterlesen

„Über Uns“ – Bitte nicht mit „U“!

Auf der „Über uns“- oder „Über mich“-Seite darf man ja ruhig mal aus der Reihe tanzen und Persönlichkeit zeigen. Hier ein schönes Beispiel, dass man auch ohne Anzug und Krawatte eine gute Figur machen kann: http://lessfilms.com/about/. Ich selbst habe mir das Wahlkampfmotto eines pensionierten US-Präsidenten ausgeliehen: „YES, I CAN“ – hier bewusst in GROSSschreibung und rot. Werbung darf auffallen. Weiterlesen

SEO-Grundlagen 2018: was zählt wirklich bei Google?

Bildquelle: Silke Kaiser / pixelio.de

Was sind die SEO-Basics, die die Launen von Google über das nächste Update hinaus überstehen? Wer sicher gehen will, nicht von einer Penalty erwischt zu werden, sollte sich auf wenige anerkannte Grundlagen der Suchmaschinenoptimierung verlassen. Damit sind noch keine Top-Rankings garantiert, aber die Chance auf Dauer ein verlässliches Traffic-Volumen bleibt erhalten: Weiterlesen

Backups vom Hoster: Datensicherungen bei Strato, Hetzner & Co.

Webhoster sehen es nicht als ihre originäre Aufgabe an, Datensicherungen der Dateien und der Datenbanken zu erstellen und lehnen eine Verantwortung hierfür auch meist ab. Dennoch kann es für den einen oder anderen Webmaster sinnvoll sein, auf eine solche Sicherung zurückgreifen zu können, falls die selbst erstellten Backups nicht mehr auffindbar sind oder im Nachhinein Änderungen vorgenommen wurden, die eben nicht gesichert wurden. Weiterlesen

WordPress Backup & Updates Service

Warum Backups (Datensicherungen) für WordPress?

Es kann immer einmal etwas schief gehen – nur eine Kleinigkeit wurde geändert und schon geht etwas nicht mehr, das Layout ist zerschossen, Sie können sich nicht mehr einloggen, die Seite ist nicht mehr aufrufbar, der Bildschirm ganz in weiß, oder oder oder … Weiterlesen