📂 所属阶段:第五阶段 — 战力升级(分布式与进阶篇)
from pybloom import BloomFilter class BloomFilterDuplicates: def __init__(self): self.bf = BloomFilter(capacity=1000000, error_rate=0.001) def is_duplicate(self, url): if url in self.bf: return True self.bf.add(url) return False
import redis class DistributedLock: def __init__(self): self.redis = redis.Redis() def acquire(self, key, timeout=10): return self.redis.set(key, 1, nx=True, ex=timeout) def release(self, key): self.redis.delete(key)
分布式去重: 1. 布隆过滤器:内存高效 2. Redis Set:精确去重 3. 数据库查询:最准确 分布式调度: 1. 分布式锁:避免重复 2. 消息队列:负载均衡 3. 任务调度:定时执行
💡 记住:分布式系统的核心是去重和调度。掌握它们,你就掌握了分布式爬虫的精髓。
🔗 扩展阅读