FSCrawler 2.10中断后无法续爬,如何基于Elasticsearch同步续爬?
解决方案
1. 强制从中断处续爬的临时方案
- 找到FSCrawler的状态文件:在
~/.fscrawler/<你的任务名称>目录下的_status文件,它记录了上次扫描的时间戳。 - 手动修改该文件中的时间戳为你完成220份文档时的时间点,这样爬虫会认为需要扫描该时间点之后的文件,而非直接跳过所有旧文件。修改前记得备份
_status文件,防止配置损坏。
2. 配置FSCrawler基于Elasticsearch索引判断已扫描文件
FSCrawler默认依赖文件修改时间和本地状态文件判断,你可以通过修改任务配置文件(_settings.json)切换为基于ES索引的校验逻辑:
- 打开配置文件,找到
fs节点,调整以下关键参数:"fs": { "update": true, "checksum": "md5", "skip_unchanged": false, "continue_on_error": true, "ocr": { "enabled": true, "language": "eng", "path": "/usr/bin/tesseract" }, // 保留其他原有配置 }skip_unchanged: false:关闭仅基于修改时间跳过文件的逻辑checksum: "md5":开启文件MD5校验,FSCrawler会对比ES索引中存储的文件校验和,未索引或校验和不匹配的文件会被重新处理
额外优化建议
- 分批次处理:把未扫描的380份文档移到临时文件夹,单独创建FSCrawler任务处理,避免一次处理大量文件导致的风险,即使中断也只需处理剩余部分。
- 排查文件夹不可用的根源:检查服务器上目标文件夹的权限、磁盘挂载状态等,从源头解决中断问题,避免重复踩坑。
内容的提问来源于stack exchange,提问作者Petar Stankovic
相关产品推荐
相关产品推荐

