
Pythonischer KI-Crawler-Tarpit
Pyison ist ein Tar-Pit für KI-Webcrawler
Klonen Sie dieses Projekt in einen lokalen Ordner
Ändern Sie die Einstellungen in der Datei config/config.json
random-seed auf eine zufällige Zahl!port-Nummer für den Server(Optional, aber empfohlen) Aktualisieren Sie die HTML-Vorlage, CSS, Bilder und robots.txt nach Ihren Wünschen
(Optional) Bearbeiten Sie die robots.txt, wenn Sie ändern möchten, welche Bots betroffen sind
Richten Sie die Serverumgebung mit einer der unten stehenden Methoden ein
Stellen Sie den Server hinter einen Reverse Proxy
pip install nltkpython3 src/server.pyhttp://localhost:<Ihre Portnummer> in einem BrowserEs wird dringend empfohlen, einen Reverse Proxy zu verwenden, um diesen Inhalt auszuliefern. Dies kann die Serverlast reduzieren, indem Seiten zwischengespeichert und Ratenbegrenzungen eingeführt werden, sowie den Inhalt über https ausliefern und vor einigen grundlegenden Webserver-Exploits schützen.
User-Agent-HTTP-Header von NPM an den Pyison-Server ohne spezielle Konfiguration weiterleiten. Verwenden Sie proxy_pass_header User-Agent; falls nötig.Wählen Sie die folgenden Einstellungen in der Benutzeroberfläche oder geben Sie die entsprechenden Einstellungen in der Konfigurationsdatei ein:
tarpit.example.comhttplocalhost oder der Name des Docker-Containers, wenn ein Docker-Netzwerk verwendet wird80)Cache Assets und Block Common Exploits, aber nicht Websockets SupportUm Pyison in einem Unterpfad zu verwenden, verwenden Sie die folgende Standortkonfiguration
# Behandelt die Stammseite ("example.com/tarpit")
location /tarpit {
proxy_pass http://localhost:80;
}
# Behandelt alle Unterseiten ("example.com/tarpit/a" und "example.com/tarpit/a/b")
location /tarpit/ {
proxy_pass http://localhost:80;
}
# Behandelt alle URLs mit einer 3-Buchstaben-Dateierweiterung ("example.com/tarpit/style.css" und "example.com/tarpit/images/picture.jpg")
# Beachten Sie, dass ~ für Regex-Abgleich steht. Die unmittelbar darauf folgende Zeichenfolge muss eine gültige Regex-Anweisung sein.
location ~ .*\/tarpit\/.*\....$ {
proxy_pass http://localhost:80;
}
Hier ist eine funktionierende Einrichtung über die Benutzeroberfläche:
/tarpit hat keine benutzerdefinierte Konfiguration. Er verhält sich wie der erste oben definierte Standortblock./tarpit/ enthält den zweiten und dritten oben definierten Standortblocktarpit durch den gewünschten Stammpfad.
/tar/pit verwenden, beachten Sie, dass der dritte Standortblock Regex verwendet. Schrägstriche müssen daher mit einem Backslash maskiert werden.
port (Standard 80)
random-seed (Bitte ändern Sie dies!)
document-root (Standard "/")
https://example.com/pyison/ oder /pyison/fake-image-dir (Standard ["images"])
fake-css-dir (Standard ["css"])
spacing-characters (Standard ["_","-","%20"])
{HOME}
{TITLE}
/blog/about/once-upon-a-time -> Once Upon A Time{UPTITLE}
{MAIN}
{UP}
/blog/about/once-upon-a-time -> /blog/about
Hier ist ein Beispiel dafür, wie die Website vor der Bearbeitung der Vorlage aussieht:

services:
pyison:
image: "ghcr.io/jonaslong/pyison:main"
container_name: pyison
tty: true
ports:
- 80:80
docker compose up
-d, um sich vom Container zu trennendocker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
--rm, um den Container zu persistierendocker build -t pyison:latest .docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest/tar/pit würde location ~ .*\/tar\/pit\/.*\....$ im dritten Standortblock erforderndocument-root von Pyison mit dem vom Proxy verwendeten Unterpfad (siehe Abschnitt Konfiguration)unsafe-characters (Standard ["'","`"])
robots-txt (Standard "assets/robots.txt")
/robots.txt ausgeliefert wirdhtml-templates (Standard ["assets/template.html"])
css-files (Standard ["assets/style.css"])
images
ico (Standard ["assets/logo.ico"])jpg (Standard ["assets/logo.jpg"])png (Standard["assets/logo.png"])remove-from-stop-words
{CSSLINK}
/styles) kann in der Konfiguration festgelegt werden{WORD}
{NAME}
{SENTENCE}
{PIC}
/images) kann in der Konfiguration festgelegt werden{LINK}
/dressage/electrochronometer/himself-she-eciliate{OVER}
/neighborliness/wont_unhonest könnte ein {OVER}-Tag durch /neighborliness/hooliganism ersetzt werden{NEWTITLE}
Nectarial Electrofusion Which Dephosphorization{LINK}- oder {OVER}-Tag folgt, werden Titel und URL synchronisiert
<a href="https://github.com/jonaslong/pyison/blob/main/%7BOVER%7D">{NEWTITLE}</a> könnte durch <a href="https://github.com/jonaslong/pyison/blob/main/swordmanship/yeller/over-will-oghuz">Over Will Oghuz</a> ersetzt werden{NEWTITLE}-Tag sucht rückwärts nach dem nächstgelegenen {LINK}- oder {OVER}-Tag, um sich damit zu synchronisieren.
{LINK}- oder {OVER}-Tag unmittelbar sein -Tag folgt, falls ein gewünscht wird.{NEWTITLE}{NEWTITLE}