更新验证器提价

This commit is contained in:
2026-03-25 15:17:18 +08:00
commit 93c2cebc94
73 changed files with 15872 additions and 0 deletions

91
PROBLEM_SOLUTION.md Normal file
View File

@@ -0,0 +1,91 @@
# 问题诊断与解决方案
## 问题描述
程序运行在处理文章的时候,没有运行到`process_link`函数,所有的好像都跳过了。
## 问题诊断过程
### 1. 初步分析
通过运行诊断脚本(`debug_process.py`),发现:
- Excel文件读取正常有13个链接
- 链接过滤逻辑正常
- 违禁词配置正常
- 最小文章长度设置为102字符
### 2. 日志分析
`article_replace.log`中可以看到:
- "总共13个链接" 重复多次(说明循环执行多次)
- "开始处理链接" 确实被调用了
- 但之后没有任何输出,说明函数提前返回了
### 3. 深入调查
通过测试发现真正的问题:
#### 问题1Selenium函数被注释
`get_web_content.py`中,所有的文章提取函数都调用了`get_webpage_source_selenium()`,但这个函数被注释掉了,导致程序无法获取动态网页内容。
#### 问题2网络请求配置问题
即使切换到requests`get_webpage_source`),也没有配置代理设置,导致网络连接失败。
#### 问题3网页结构问题
使用requests获取的HTML是动态加载的包含大量JavaScript代码实际内容需要通过浏览器渲染后才能获取。
## 解决方案
### 1. 修复Selenium函数
重新启用并修复了`get_webpage_source_selenium()`函数:
- 添加了必要的导入
- 使用`webdriver_manager`自动管理ChromeDriver
- 添加了适当的等待时间
- 增加了异常处理
### 2. 修改提取函数
将所有文章提取函数改回使用Selenium
- `toutiao_w_extract_content()`
- `toutiao_extract_content()`
- `wechat_extract_content()`
- `wangyi_extract_content()`
- `souhu_extract_content()`
### 3. 添加详细的日志记录
`main_process.py`中添加了详细的日志记录:
- 记录每个提取步骤
- 记录标题、内容长度
- 记录各种提前返回的原因
- 记录违禁词检查结果
### 4. 添加网络请求代理配置
`get_webpage_source()`中添加了代理配置,避免系统代理的干扰。
## 修复后的流程
1. **Excel读取** - 正常
2. **链接过滤** - 正常
3. **网页内容提取** - 使用Selenium获取动态内容
4. **标题和内容提取** - 使用多个CSS选择器尝试
5. **内容验证** - 检查标题是否为空、长度是否超限
6. **最小长度检查** - 检查文章字数是否达到阈值
7. **违禁词检查** - 检查标题中是否包含违禁词
8. **AI处理** - 调用Coze或Dify进行文章改写
## 注意事项
1. **Selenium依赖**需要安装Chrome浏览器和ChromeDriver
2. **网络问题**:如果仍然无法访问网站,可能需要:
- 检查网络连接
- 配置代理设置
- 更换网络环境
3. **Selenium无头模式**:当前使用无头模式,如果需要调试,可以注释掉`--headless`参数
## 测试建议
1. 运行测试脚本:`python test_extract.py`
2. 检查日志文件:`tail -f article_replace.log`
3. 验证提取结果:检查生成的文章文件
## 后续优化建议
1. **错误处理增强**:对网络请求添加重试机制
2. **选择器优化**根据实际网页结构调整CSS选择器
3. **等待策略优化**:使用更智能的等待策略,而不是固定延时
4. **日志级别管理**:区分调试信息和生产日志