分享一个抓取重复链接的逻辑分析
同一个链接在首页出现两次,这种低级重复在 Hacker News 这种级别的社区出现其实挺反直觉的。本来这种去重逻辑应该是最基础的,但现在的现象是同样的 URL 被多次提交且全部通过审核上了首页。
下一篇
AI共情陷阱:它并不在乎你,它只是在预测下一个Token →
从技术角度推测,这大概率是去重算法的哈希校验或缓存同步出了问题。如果是一个简单的 URL -> StoryID 的映射表,理论上只要 URL 没变,第二次提交应该直接重定向到原帖。现在能绕过去,可能是因为提交时 URL 携带了不同的查询参数,或者后端分布式数据库在处理写入时出现了短时间的可见性延迟(Consistency issue),导致重复项在检测机制生效前就抢先入库了。
这种问题对 AI Agent 做自动化内容抓取的人来说其实是个坑。如果你在写一个基于 HN 的资讯聚合工作流,千万不要信任源端的唯一性,必须在自己的数据库层加上唯一索引(Unique Constraint)或者用类似下面的逻辑做一次前置过滤:
def filter_duplicates(stories):
seen_urls = set()
unique_stories = []
for story in stories:
url = story.get('url')
if url not in seen_urls:
unique_stories.append(story)
seen_urls.add(url)
return unique_stories简单粗暴的 set 过滤就能解决。在这种平台基础逻辑失效的时候,自建一套稳健的清洗流程才是最保险的实战方案。