
Pythonic AI crawler tarpit
Pyison 是一个针对 AI 网络爬虫的蜜罐陷阱
将此项目克隆到本地文件夹
更改 config/config.json 文件中的设置
random-seed 设置为一个随机数!port 号(可选但推荐)根据需要更新 HTML 模板、CSS、图片和 robots.txt
(可选)如果要更改受影响的机器人,请编辑 robots.txt
使用以下任一方法设置服务器环境
将服务器置于反向代理之后
pip install nltkpython3 src/server.pyhttp://localhost:<你的端口号>services:
pyison:
image: "ghcr.io/jonaslong/pyison:main"
container_name: pyison
tty: true
ports:
- 80:80
强烈建议**使用反向代理来提供此内容。它可以通过缓存页面和引入速率限制来减少服务器负载,同时通过 https 提供内容并防范一些基本的 web 服务器漏洞。
User-Agent http 头部从 NPM 传递到 Pyison 服务器。如有需要,请使用 proxy_pass_header User-Agent;。在 UI 中选择以下设置,或在配置文件中输入等效设置:
tarpit.example.comhttplocalhost,如果使用 docker 网络则为 docker 容器的名称80)缓存资产 和 拦截常见漏洞,但不要启用 Websockets 支持要在子路径中使用 Pyison,请使用以下位置配置
# 处理根页面("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;
}
# 处理所有带有3个字母文件扩展名的 URL("example.com/tarpit/style.css" 和 "example.com/tarpit/images/picture.jpg")
# 注意 ~ 表示正则匹配。紧随其后的字符串必须是有效的正则表达式。
location ~ .*\/tarpit\/.*\....$ {
proxy_pass http://localhost:80;
}
以下是使用 UI 的工作设置:
/tarpit 没有自定义配置,其行为与上面定义的第一位置块相同。/tarpit/ 包含了上面定义的第二和第三位置块。tarpit 替换为所需的根路径。
/tar/pit,请注意第三位置块使用正则表达式,因此任何斜杠必须用反斜杠转义
/tar/pit 需要在第三位置块中使用 location ~ .*\/tar\/pit\/.*\....$document-root 设置,使用代理使用的子路径(请参阅部分)port(默认 80)
random-seed(请更改此项!)
document-root(默认 "/")
https://example.com/pyison/ 或 /pyison/fake-image-dir(默认 ["images"])
fake-css-dir(默认 ["css"])
spacing-characters(默认 ["_","-","%20"])
unsafe-characters(默认 ["'","`"])
robots-txt(默认 "assets/robots.txt")
{HOME}
{TITLE}
/blog/about/once-upon-a-time -> Once Upon A Time{UPTITLE}
{MAIN}
{UP}
/blog/about/once-upon-a-time -> /blog/about{CSSLINK}
/styles)可以在配置中设置
以下是模板未经任何编辑时的站点示例:

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 运行容器/robots.txt 提供的文件html-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
{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="{OVER}">{NEWTITLE}</a> 可能被替换为 <a href="/swordmanship/yeller/over-will-oghuz">Over Will Oghuz</a>{NEWTITLE} 标签将向后搜索最近的 {LINK} 或 {OVER} 标签以进行同步。
{LINK} 或 {OVER} 标签后面紧跟其 {NEWTITLE} 标签(如果需要 {NEWTITLE}),标签将始终正确配对。