
Pythonic AI-краулер-тарпит
Pyison — это «смоляная яма» для AI-веб-краулеров.
Клонируйте этот проект в локальную папку
Измените настройки в файле config/config.json
random-seed на случайное число!port для сервера(Опционально, но рекомендуется) Обновите HTML-шаблон, CSS, изображения и robots.txt по своему вкусу
(Опционально) Отредактируйте robots.txt, если хотите изменить, какие боты будут затронуты
Настройте среду сервера любым из методов ниже
Поместите сервер за обратным прокси
pip install nltkpython3 src/server.pyhttp://localhost:<ваш номер порта> в браузереНастоятельно рекомендуется использовать обратный прокси для отдачи этого контента. Это может снизить нагрузку на сервер за счёт кэширования страниц и введения ограничения скорости, а также отдавать контент через https и защищать от некоторых базовых эксплойтов веб-сервера.
User-Agent от NPM к серверу Pyison без специальной настройки. При необходимости используйте proxy_pass_header User-Agent;.Выберите следующие настройки в пользовательском интерфейсе или введите эквивалентные настройки в файле конфигурации:
tarpit.example.comhttplocalhost или имя контейнера Docker, если используется сеть Docker80)Cache Assets и Block Common Exploits, но не Websockets SupportЧтобы использовать Pyison в подпути, используйте следующую конфигурацию location
# Обрабатывает корневую страницу ("example.com/tarpit")
location /tarpit {
proxy_pass http://localhost:80;
}
# Обрабатывает все подстраницы ("example.com/tarpit/a" и "example.com/tarpit/a/b")
location /tarpit/ {
proxy_pass http://localhost:80;
}
# Обрабатывает все URL с 3-буквенным расширением файла ("example.com/tarpit/style.css" и "example.com/tarpit/images/picture.jpg")
# Обратите внимание, что ~ обозначает совпадение по регулярному выражению. Строка, следующая за ним, должна быть допустимым регулярным выражением.
location ~ .*\/tarpit\/.*\....$ {
proxy_pass http://localhost:80;
}
Вот работающая настройка с использованием пользовательского интерфейса:
/tarpit, не имеет специальной конфигурации. Он будет вести себя как первый блок location, определённый выше./tarpit/, содержит второй и третий блоки location, определённые вышеtarpit на желаемый корневой путь.
/tar/pit, обратите внимание, что третий блок location использует регулярное выражение, поэтому любые слэши должны быть экранированы обратной косой чертой
port (по умолчанию 80)
random-seed (Пожалуйста, измените это!)
document-root (по умолчанию "/")
https://example.com/pyison/ или /pyison/fake-image-dir (по умолчанию ["images"])
fake-css-dir (по умолчанию ["css"])
spacing-characters (по умолчанию ["_","-","%20"])
{HOME}
{TITLE}
/blog/about/once-upon-a-time -> Once Upon A Time{UPTITLE}
{MAIN}
{UP}
/blog/about/once-upon-a-time -> /blog/about
Вот пример того, как сайт выглядит до любого редактирования шаблона:

services:
pyison:
image: "ghcr.io/jonaslong/pyison:main"
container_name: pyison
tty: true
ports:
- 80:80
docker compose up
-d для отсоединения от контейнераdocker run --tty --name pyison -p "127.0.0.1:80:80" --rm ghcr.io/jonaslong/pyison:main
--rm, чтобы сохранить контейнерdocker build -t pyison:latest .docker run --tty --name pyison -p "127.0.0.1:80:80" --rm pyison:latest/tar/pit потребуется location ~ .*\/tar\/pit\/.*\....$ в третьем блоке locationdocument-root в Pyison, указав подпуть, используемый прокси (см. раздел Конфигурация)unsafe-characters (по умолчанию ["'","`"])
robots-txt (по умолчанию "assets/robots.txt")
/robots.txthtml-templates (по умолчанию ["assets/template.html"])
css-files (по умолчанию ["assets/style.css"])
images
ico (по умолчанию ["assets/logo.ico"])jpg (по умолчанию ["assets/logo.jpg"])png (по умолчанию["assets/logo.png"])remove-from-stop-words
{CSSLINK}
/styles) можно задать в конфигурации{WORD}
{NAME}
{SENTENCE}
{PIC}
/images) можно задать в конфигурации{LINK}
/dressage/electrochronometer/himself-she-eciliate{OVER}
/neighborliness/wont_unhonest тег {OVER} может быть заменён на /neighborliness/hooliganism{NEWTITLE}
Nectarial Electrofusion Which Dephosphorization{LINK} или {OVER}, заголовок и URL будут синхронизированы
<a href="https://github.com/jonaslong/pyison/blob/main/%7BOVER%7D">{NEWTITLE}</a> может быть заменено на <a href="https://github.com/jonaslong/pyison/blob/main/swordmanship/yeller/over-will-oghuz">Over Will Oghuz</a>{NEWTITLE} будет искать в обратном направлении ближайший тег {LINK} или {OVER} для синхронизации.
{LINK} или {OVER} сразу следует его тег , если требуется .{NEWTITLE}{NEWTITLE}