# Paracore 寄生兽 4.0 > “Parasite”(寄生兽)和“Core”(核心)的结合,意味着软件对于系统或其服务的核心重要性。 > 运行环境 Windows / Linux 最新版本支持的功能如下: - [x] **多模板配置** 自定义模板,自由切换,可根据蜘蛛读取特定模板 - [x] **灵活强大的标签系统** 通过丰富的标签功能定制需要的任何页面 - [x] **干扰码** 支持在采集文章内容插入干扰码 - [x] **自定义页面图片** 支持利用loadTxt标签加载随机图片 - [x] **自定义标题、关键词及链接等数据** 自动加载任意多个.txt文件并调取相关内容 - [x] **可配置数据源** 选择已有的数据源内容 - [x] **支持代理** 可通过代理进行采集 - [x] **定时采集和清理、自动排重支持** 自动采集目标并存储内容到本地,并自动加载,可定时清理一定时间以前的数据 - [x] **采集文本分割** 将文本文件进行分割避免单文本文件过大 - [x] **采集下载图片** 自动下载内容中的图片并修正图片路径 - [x] **随机生成路径** 可以随机生成URL路径 - [x] **随机生成内容专有路径** 可以随机生成某内容的URL路径 - [x] **可缓存页面** 可设置将随机页面进行快照式缓存,固定URL对应页面,提高搜索引擎收录 - [x] **搜索引擎蜘蛛判断** 根据指定的搜索引擎特征判断是否跳转 - [x] **搜索引擎蜘蛛访问统计** 可跟进统计蜘蛛访问数 - [x] **客户端访问统计** 可跟进所有客户端访问数 - [x] **文章内容与路径绑定** 支持URL和文章一一对应 - [x] **配置路径特征** 实现自定义的路径特征 - [x] **获得链接列表** 支持获得指定数目的链接并返回列表 - [x] **收录后自动跳转** 支持来自谷歌、百度等搜索引擎的访问自动跳转 - [x] **文本编码** 支持对中文文本进行HTML编码 - [x] **默认模板** 自带默认模板演示标签库的使用 # 运行 首先创建mysql数据库,根据实际情况配置config/paracore.json文件Mysql部分,**首次系统运行会自动创建数据表** - 建议仔细阅读说明,将paracore.json文件各个项目配置好后再运行 以Linux系统为例: ```shell # ./keyue ``` 以服务的形式在后台运行: ```shell # ./keyue -d ``` 反向代理(如果需要直接使用详情页面时配置): ```shell listen [::]:80; server_name abc.com; location ^~ / { proxy_pass http://123.1.1.1:8080; proxy_set_header Host $http_host; } ``` 这样直接代理外网地址:http://123.0.0.1:8080,如果想转发静态,请代理static目录: ```shell location /static/ { proxy_pass http://123.1.1.1:8080/static/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 保留原始路径,防止路径出错 proxy_redirect off; } ``` # 标签系统 - → {{ loadTxt "xxx" }} 随机加载指定.txt文件一条内容。.txt文件是被自动加载的,"xxx"请替换为实际文件名,建议以字母命名.txt文件。注意:图片txt路径为:/p/img/xx.jpg,自定义图片请结合{{ .url }}使用 - → {{ index .file "xxx" n }} 加载指定.txt文件第n条内容,"xxx"请替换为实际文件名;例如{{ index .file "key" 3 }}就是加载key.txt第3行内容 - → {{ randomLink 8 5 }} 软件随机生成的链接;8代表链接中随机字符长度,至少>3;5是字符类型:0为大小写英文字符,1为数字,2为大写字符,3为小写字符,>3以上数字为大小写及数字混合 - → {{ randomIdLink 8 5 }} 软件随机生成的固定采集内容的链接;8代表链接中随机字符长度,至少>3;5是字符类型:0为大小写英文字符,1为数字,2为大写字符,3为小写字符,>3以上数字为大小写及数字混合 - → {{ random 8 5 ",.寄生兽" }} 随机字符标签;8代表链接中随机字符长度,至少>3;5是字符类型:0为大小写英文字符,1为数字,2为大写字符,3为小写字符,>3以上数字为大小写及数字混合;",.寄生兽"代表补充字符,补充随机显示其他需要的字符 - → {{ randomTitle }} 采集信息随机抽取标题 - → {{ .url }} 静态资源URL - → {{ .uri }} {{ .selflink }} 当前页的相对和绝对地址 - → {{ .title }} 随机标题和时间,来自于采集数据源 - → {{ Time "now" "2006年01月02日 15:04:05" }} 时间标签,"now"则代表当前时间,为空""则尝试获得采集数据时间;"2006年01月02日 15:04:05"则是时间格式串,注意这里的数字是固定用法,2006、01、02、15、04、05分别代表年月日时分秒 - → {{ Content "normal" }} 随机内容,来自于采集数据源:normal表示正常显示,noise表示混入干扰码,key表示混入关键词,encode表示进行十进制实体编码 - → {{ ContentEmbKeys $keywordFixed1 $keywordFixed2 $keywordFixed3 "关键词" }} 在随机文章内容中嵌入指定关键词,其中$keywordFixed1 $keywordFixed2 $keywordFixed3为模板中预定义标签,也可以直接追加关键词 - → {{ encode (xxx)}} 编码标签,对其他标签进行HTML十进制实体编码(对content标签无效)。使用时需注意空格,随机文本加载:{{ encode (loadTxt "key") }}、{{ encode (loadTxt "title") }};固定文本加载:{{ encode (index .file "key" 17) }};直接编码:{{ encode randomTitle }}、{{ encode .title }} - → {{ $keywordFixed := loadTxt "key" }} {{ $keywordFixed }} 页面多个位置使用同一随机内容的方法:通过{{ $keywordFixed := loadTxt "key" }}自定义了标签并获得随机内容,然后在需要的位置重复使用{{ $keywordFixed }} # 系统配置文件[ absolute.json ]说明 - **请务必注意!变更配置文件一定要杀掉进程或者停止keyue服务,修改好配置后再启动,这样配置才能生效** ```shell { "KeYue": { "project": "可悦云系统", //无需改动 "code": "HWDhBkvzoSF", //授权码 不能改动 "path": "tudouyin" //授权路径 }, "Logs": { "logPath": "./log/" //系统日志路径 }, "Web": { "url": "127.0.0.1", //web服务地址,一般无需改动 "port": "8080", //端口,如果部署到服务器上,请注意防火墙设置 "ssl": { "enable": false, //是否启用ssl证书 "sslPemPath": "", //证书pem文件路径,请用绝对路径 "sslKeyPath": "" //证书key文件路径,请用绝对路径 }, "jumpTo": "/p/index/index", //访问首页时跳转 "corsUrl": "http://127.0.0.1" //跨域授权 }, "Rpc": { "addr": "127.0.0.1:39001" //Rpc服务地址及端口 } } ``` # 寄生兽配置文件[ paracore.json ]说明 - **请务必注意!变更配置文件一定要杀掉进程或者停止keyue服务,修改好配置后再启动,这样配置才能生效** ```shell { "paracore": { "enable": true, //必须为true "name": "寄生兽模块", //无需改动 "desc": "“Parasite”(寄生兽)和“Core”(核心)的结合,意味着软件对于系统或其服务的核心重要性", //无需改动 "version": "20250316", //无需改动 "template": { //模板设置,注意模板存放于/web/html/目录,扩展名固定为.html,此处填写对应文件名即可 "Baiduspider": ["zaobao"], "Googlebot": ["zaobao"], "Sogou": ["zaobao"], "360Spider": ["zaobao"], "Other": ["zaobao"] }, "Mysql": [ //数据库配置,用于存储访问数据统计 { "alias": "paracore", //必须为paracore "hostname": "127.0.0.1", "database": "paracore", "username": "root", "password": "123456", "port": "3306", "prefix": "p_" } ], "autoloadTemplate": true, //动态加载模板,如模板不再变更可设置为false提升性能 "txtPath": "./app/paracore/txt/", //自动加载的.txt文件相对路径,程序会自动加载此路径下的所有.txt文档,按行读取 "txtLimitNum": 0, //限制自定义.txt文件加载数据数量,0为不限制 "pathFeatures": ["web","ppt","my","list","shows"],//路径特征列表,不包含特殊符号,尽量配置复杂些不要与源站有路径字符有重复 "userAgentPattern": "(?i)Sogou|Baiduspider|Yisou|360|360Spider|YisouSpider|Spider|So.com|Sm.cn|Googlebot", //搜索引擎特征,注意此配置影响统计页面中的蜘蛛流量累计 "sourceSite": ["google.com","baidu.com","so.com","sogou.com"], // 来源网站判断,用于判断收录并跳转 "snapshot": true, //开启页面快照缓存功能 "notSEJump": "http://www.0as.net/", //非搜索引擎跳转,为空则不跳转 "isSEGetLink": true, //是否只有搜索引擎访问获得的时候才可以获得链接列表 "showWordOfLink": "", //链接列表是否显示文字,即指定文本(key、title或其他)中的随机文本,为空则不显示 "chainProbability": 30, //链接列表中含有轮链——即文本link.txt中定义链接的百分比,30表示获得的链接有30%来自轮链 "dataSource": "chinanews", //数据源是已经完成的采集程序,名称需要确认正确,一般无需改动,创建的数据文件以.txt形式存放于软件目录 "proxyUrl": "http://127.0.0.1:22307", //代理地址和端口,为""则不使用代理,在外网环境访问国外站点无需代理 "runAtStartup": false, //启动软件时立即进行采集 "intervals": 60, //自动采集间隔,单位:分钟 "autoClean": 4320, //自动清理多久之前的数据文件,单位:分钟, "helpPwd": "123456" //帮助页面访问密码,设置后使用 https://www.0as.net/p/help/123456 访问查看相关说明、数据统计 } } ``` ## Q & A ### 可悦云系统和寄生兽是什么关系?寄生兽有官网吗? 可悦云系统是一套通用的程序框架,寄生兽是在此框架之上开发的模块,这也是为什么有两个配置文件的原因。 [寄生兽的官网](https://www.0as.net) ### 客户端代码放置到什么位置? 客户端代码一般嵌入的目标页面最开始的部分,这样才能排除原页面的一些干扰 ### 寄生兽运行对系统的要求? 建议不少于2G内存,尽量避免轻量云服务器、虚拟主机等资源受限环境 ### 可悦云系统&寄生兽是用什么语言开发的,提供源代码么? 是采用GO语言开发的,提供IP授权,`不提供源代码` ### 寄生兽是否接受定制开发? 接受。具体请与业务人员沟通 ### 蜘蛛抓取的时候出现两个模版一个是定制的详情页,一个是程序介绍,如何处理? 在配置文件paracore.json中模板配置里去掉所有default项目即可 ### 利用工具模拟蜘蛛抓取的时候,抓取不到关键词和描述怎么办? 请详细检查模板代码是否符合规范或者模拟工具相关规则。模板代码可以自行调整的,受主观因素和各种工具影响,每个人想法都不太一样,但却在整个软件收录效果中起到最主要的影响,请多修改和测试 ### 寄生兽跳转到落地页的条件是什么? 程序会根据sourceSite设置进行来源判断、根据userAgentPattern判断是否是蜘蛛,根据pathFeatures设置来检查路径特征,当满足了包含路径特征并且在来源列表中,在不是蜘蛛的情况下,就会自动跳转到notSEJump所指定的URL;跳转一般用来在搜索引擎收录后,通过搜索引擎访问的用户直接跳转到推广的落地页,属于收获成果的最后一环。 ### 运营一段时间后,原本跳转到落地页结果不跳转了? 排除来源和蜘蛛特征变化这种小概率事件,主要看是否调整了pathFeatures路径特征配置,如果去除了已经收录的URL特征,就会有不跳转的情况,建议该配置在部署时一次性配好,在以后的运营中只做新增配置就好。 ### 用浏览器直接访问生成的URL是空白的,但利用工具模拟蜘蛛访问则可以看见内容,这是正常的么? 是正常的,这也是软件主要功能。生成的网页主要为了给搜索引擎蜘蛛爬取,而不是改变客户端嵌入的原网页内容 # Shell端嵌入代码: ### PHP代码:参见keyue-paracore-mini.php ### ASP代码:参见keyue-paracore-mini.asp ### C# .NET代码:参见keyue-paracore-mini.aspx