这是一个用于自动点击帖子提高曝光度的Python程序,支持搜狐、头条等多个平台。程序采用模块化设计,易于扩展和维护,并包含了基本的反检测机制。
- 支持多平台(搜狐、头条、网易、CSDN、雪球、什么值得买等)
- URL自动检测平台功能
- 随机User-Agent生成(支持平台特定User-Agent)
- 代理IP支持(可选)
- 模拟真实用户行为(随机停留时间、滚动页面)
- 详细的日志记录
- 点击结果统计和报告生成
- 支持无头浏览器模式
auto_clicker/
├── config/ # 配置文件目录
│ ├── config.json # 主配置文件
│ ├── platforms.json # 平台配置文件
│ └── articles.json # 文章URL配置文件
├── engines/ # 点击引擎目录
│ ├── __init__.py
│ ├── base_engine.py # 基础引擎类
│ └── generic_engine.py # 通用点击引擎
├── utils/ # 工具模块目录
│ ├── __init__.py
│ ├── proxy_manager.py # 代理管理
│ ├── useragent.py # User-Agent生成
│ └── logger.py # 日志工具
├── main.py # 主程序入口
├── requirements.txt # 依赖库列表
└── README.md # 说明文档
pip install -r requirements.txt主配置文件,包含程序的运行参数:
{
"general": {
"total_clicks": 100, # 总点击次数
"min_interval": 5, # 最小点击间隔(秒)
"max_interval": 15, # 最大点击间隔(秒)
"use_proxy": false, # 是否使用代理
"proxy_type": "http" # 代理类型
},
"logging": {
"level": "INFO", # 日志级别
"log_file": "auto_clicker.log" # 日志文件路径
},
"browser": {
"use_headless": true, # 是否使用无头模式
"page_load_timeout": 30 # 页面加载超时(秒)
}
}平台配置文件,定义支持的平台信息(用于URL自动检测):
{
"platforms": [
{
"name": "sohu", # 平台名称(用于代码标识)
"display_name": "搜狐", # 平台显示名称
"domain": "sohu.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "toutiao", # 平台名称(用于代码标识)
"display_name": "头条", # 平台显示名称
"domain": "toutiao.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "netease", # 平台名称(用于代码标识)
"display_name": "网易", # 平台显示名称
"domain": "163.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "smzdm", # 平台名称(用于代码标识)
"display_name": "什么值得买", # 平台显示名称
"domain": "smzdm.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "csdn", # 平台名称(用于代码标识)
"display_name": "CSDN", # 平台显示名称
"domain": "csdn.net", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "xueqiu", # 平台名称(用于代码标识)
"display_name": "雪球", # 平台显示名称
"domain": "xueqiu.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
},
{
"name": "generic", # 平台名称(用于代码标识)
"display_name": "通用", # 平台显示名称
"domain": "", # 通用平台无特定域名
"active": true # 是否启用该平台
}
]
}文章URL配置文件,直接列出需要点击的完整URL:
{
"clicks": {
"description": "需要点击的URL列表",
"format": "[URL列表]",
"default": [],
"values": [
"https://www.sohu.com/a/906003169_211762",
"https://www.sohu.com/a/876963035_121312308",
"https://www.toutiao.com/a1234567890123456789/",
"https://www.163.com/dy/article/JT43DRKV0550S2L1.html",
"https://post.smzdm.com/p/axd8wr64/",
"https://blog.csdn.net/2501_94652164/article/details/155947200",
"https://xueqiu.com/6484614528/366086769"
]
}
}- 编辑
config/config.json文件,调整运行参数(可选) - 编辑
config/articles.json文件,添加需要点击的完整URL列表 - 运行程序:
python main.py注意: 不需要手动配置平台信息,程序会自动从URL检测平台类型。
错误信息:Could not reach host. Are you offline?
解决方案:
- 确保网络连接稳定
- 检查防火墙设置,确保允许连接到ChromeDriver下载服务器
- 手动下载ChromeDriver并指定路径:
- 访问 https://chromedriver.chromium.org/downloads 下载与Chrome浏览器版本匹配的ChromeDriver
- 解压并保存到本地目录
- 修改
engines/base_engine.py文件,直接使用本地ChromeDriver路径:from selenium.webdriver.chrome.service import Service as ChromeService # 将ChromeDriverManager().install()替换为本地路径 driver_path = "C:/path/to/chromedriver.exe" self.driver = webdriver.Chrome( service=ChromeService(driver_path), options=chrome_options )
解决方案:
- 安装Chrome浏览器
- 或修改代码使用其他浏览器(如Firefox、Edge)
解决方案:
- 增加点击间隔时间
- 启用代理IP
- 调整浏览器设置,禁用无头模式进行调试
程序使用通用点击引擎,通过以下流程处理点击请求:
- 从
articles.json加载URL列表 - 对每个URL,自动检测其所属平台(通过域名匹配)
- 根据检测到的平台设置合适的User-Agent
- 执行点击操作并记录结果
要支持新平台,只需在 platforms.json 中添加平台配置:
{
"name": "new_platform", # 平台名称(用于代码标识)
"display_name": "新平台", # 平台显示名称
"domain": "newplatform.com", # 平台域名(用于URL检测)
"active": true # 是否启用该平台
}修改 base_engine.py 文件中的 _simulate_user_behavior 方法,添加更多真实用户行为模拟,如:
- 点击页面元素
- 停留更长时间
- 复制文本
- 打开新标签页
如果需要修改URL检测或点击逻辑,可以编辑 engines/generic_engine.py 文件:
_detect_platform方法:修改平台检测逻辑click方法:修改点击执行逻辑_validate_parameters方法:修改URL验证规则
- 遵守平台规则,避免过度使用导致账号或IP被封禁
- 建议使用合法代理IP,避免使用恶意IP
- 定期更新User-Agent列表
- 根据平台反爬策略调整点击频率和行为
- 本程序仅用于学习和研究目的,请勿用于非法用途
MIT License