
Tarpit Pythonico per crawler AI
Pyison è un tarpit per i webcrawler AI
Clona questo progetto in una cartella locale
Modifica le impostazioni nel file config/config.json
random-seed su un numero casuale!port per il server(Opzionale ma consigliato) Aggiorna il template HTML, CSS, immagini e robots.txt a tuo piacimento
(Opzionale) Modifica il robots.txt se vuoi cambiare quali bot sono interessati
Configura l'ambiente del server con uno dei metodi seguenti
Metti il server dietro un Proxy Inverso
pip install nltkpython3 src/server.pyhttp://localhost:<numero porta> in un browserÈ altamente consigliato utilizzare un proxy inverso per servire questo contenuto. Può ridurre il carico del server memorizzando nella cache le pagine e introducendo limiti di frequenza, oltre a servire il contenuto su https e proteggere da alcuni exploit di base del server web.
User-Agent da NPM al server Pyison senza alcuna configurazione speciale. Usa proxy_pass_header User-Agent; se necessario.Seleziona le seguenti impostazioni nell'interfaccia utente, o inserisci le impostazioni equivalenti nel file di configurazione:
tarpit.example.comhttplocalhost, o il nome del container docker se si usa una rete docker80)Cache Assets e Block Common Exploits, ma non Websockets SupportPer usare Pyison in un sotto-percorso, usa la seguente configurazione di location
# Handles the root page ("example.com/tarpit")
location /tarpit {
proxy_pass http://localhost:80;
}
# Handles all sub-pages ("example.com/tarpit/a" and "example.com/tarpit/a/b")
location /tarpit/ {
proxy_pass http://localhost:80;
}
# Handles all urls with a 3-letter file extension ("example.com/tarpit/style.css" and "example.com/tarpit/images/picture.jpg")
# Note that the ~ denotes regex matching. The string immediately following it must be a valid regex statement.
location ~ .*\/tarpit\/.*\....$ {
proxy_pass http://localhost:80;
}
Ecco una configurazione funzionante usando l'interfaccia utente:
/tarpit, non ha configurazione personalizzata. Si comporterà come il primo blocco di location definito sopra./tarpit/, contiene il secondo e terzo blocco di location definiti sopratarpit con il percorso radice desiderato.
/tar/pit, nota che il terzo blocco di location usa regex, quindi qualsiasi slash deve essere escape con un backslash
port (default 80)
random-seed (Per favore cambialo!)
document-root (default "/")
https://example.com/pyison/ o /pyison/fake-image-dir (default ["images"])
fake-css-dir (default ["css"])
spacing-characters (default ["_","-","%20"])
{HOME}
{TITLE}
/blog/about/once-upon-a-time -> Once Upon A Time{UPTITLE}
{MAIN}
{UP}
/blog/about/once-upon-a-time -> /blog/about
Ecco un esempio di come appare il sito prima di qualsiasi modifica del template:

services:
pyison:
image: "ghcr.io/jonaslong/pyison:main"
container_name: pyison
tty: true
ports:
- 80:80
docker compose up
-d per staccarsi dal containerdocker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
--rm per mantenere il containerdocker build -t pyison:latest .docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest/tar/pit richiederebbe location ~ .*\/tar\/pit\/.*\....$ nel terzo blocco di locationdocument-root di Pyison con il sotto-percorso usato dal proxy (vedi la sezione Configurazione)unsafe-characters (default ["'","`"])
robots-txt (default "assets/robots.txt")
/robots.txthtml-templates (default ["assets/template.html"])
css-files (default ["assets/style.css"])
images
ico (default ["assets/logo.ico"])jpg (default ["assets/logo.jpg"])png (default["assets/logo.png"])remove-from-stop-words
{CSSLINK}
/styles) può essere impostato nella configurazione{WORD}
{NAME}
{SENTENCE}
{PIC}
/images) può essere impostato nella configurazione{LINK}
/dressage/electrochronometer/himself-she-eciliate{OVER}
/neighborliness/wont_unhonest, un tag {OVER} potrebbe essere sostituito con /neighborliness/hooliganism{NEWTITLE}
Nectarial Electrofusion Which Dephosphorization{LINK} o {OVER}, il titolo e l'url saranno sincronizzati
<a href="{OVER}">{NEWTITLE}</a> potrebbe essere sostituito con <a href="/swordmanship/yeller/over-will-oghuz">Over Will Oghuz</a>{NEWTITLE} cercherà all'indietro il tag {LINK} o {OVER} più vicino con cui sincronizzarsi.
{LINK} o {OVER} è immediatamente seguito dal suo tag {NEWTITLE}, se si desidera un {NEWTITLE}