使用Python检查链接是否失效而不下载网页

6 投票
2 回答
7657 浏览
提问于 2025-04-16 01:10

对于那些了解 wget 的人来说,它有一个选项 --spider,可以用来检查链接是否损坏,而不需要真正下载网页。我想在 Python 中做同样的事情。我的问题是,我有一个包含 100,000 个链接的列表,我想检查这些链接,最多一天一次,至少一周一次。无论如何,这样会产生很多不必要的流量。

根据我从 urllib2.urlopen() 的文档 理解,它并不会下载页面,而只是获取一些元信息。这是正确的吗?或者有没有其他更好的方法来做到这一点呢?

祝好,
Troels

2 个回答

-1

不太确定在Python中怎么做,但一般来说,你可以查看“响应头”,然后检查“状态码”是否是200。到那时,你就可以停止读取页面,继续处理下一个链接。这样你就不需要下载整个页面,只需获取“响应头”就可以了。

状态码的列表可以查看这里

9

你应该使用 HEAD请求 来实现这个功能,它会向网络服务器请求头信息,而不包括内容部分。你可以查看 如何在Python 2中发送HEAD HTTP请求?

撰写回答