gpt4 book ai didi

用于检查大 url 列表上断开链接的 Python 工具

转载 作者:太空宇宙 更新时间:2023-11-04 08:30:57 27 4
gpt4 key购买 nike

我有一个生产中的搜索引擎,可提供大约 700 000 个 url。爬行是使用 Scrapy 完成的,所有蜘蛛都使用 DeltaFetch 进行调度,以便每天获取新链接。

我面临的困难是处理损坏的链接。

我很难找到定期扫描和删除失效链接的好方法。我在考虑一些解决方案:

  • 使用 requests.get 开发一个 python 脚本,检查每个 url,并删除任何返回 404 状态的内容。
  • 使用第三方工具,例如 https://github.com/linkchecker/linkchecker ,但不确定这是否是最佳解决方案,因为我只需要检查 url 列表,而不是网站。
  • 使用 scrapy 蜘蛛来删除这个 url 列表,并返回所有出错的 url。我对此不是很有信心,因为我知道 scrapy 在扫描不同域上的大量 url 时往往会超时,这就是我如此依赖 deltafetch 的原因

你有什么建议/最佳实践来解决这个问题吗?

非常感谢。

编辑:我忘了给出一个精确度:我正在寻找“验证”那些 700k url,而不是抓取它们。实际上,这 70 万个 url 是大约 250 万个域名的爬取结果。

最佳答案

您可以编写一个小脚本来检查返回的 http 状态,如下所示:

for url in urls:
try:
urllib2.urlopen(url)
except urllib2.HTTPError, e:
# Do something when request fails
print e.code

这与您的第一点相同。您还可以运行此异步以优化运行 700k 链接所需的时间。

关于用于检查大 url 列表上断开链接的 Python 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52984173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com