|
|
1
18
使用php curl扩展。与fopen()不同,它还可以发出HTTP头请求,这些请求足以检查URL的可用性并为您节省大量带宽,因为您不必下载整个页面来进行检查。 作为起点,您可以使用如下函数:
但是,有很多可能的优化:您可能想要重新使用curl实例,如果每个主机检查多个URL,甚至重新使用连接。 哦,这段代码确实严格检查了HTTP响应代码200。它不遵循重定向(302)——但也有一个curl选项。 |
|
|
2
6
看看卷发。有一个PHP库。 还有一个curl的可执行版本,所以您甚至可以用bash编写脚本。 |
|
3
4
我实际上用PHP写了一些东西,通过一个5K+URL的数据库来完成这项工作。我上过梨课 HTTP_Request ,其方法名为 getResponseCode ()我只是迭代这些URL,将它们传递给getResponseCode并评估响应。 但是,它不适用于ftp地址、不以http或http s开头的URL(未确认,但我相信是这样),以及具有无效安全证书的站点(未找到0)。此外,如果找不到服务器,则返回0(没有状态代码)。 它可能比curl更容易,因为您包含了一些文件,并使用单个函数来获取整数代码。 |
|
|
4
2
|
|
|
5
1
似乎这是一份工作 curl . 如果您不坚持使用php,那么Perl的lwp也可能是一个答案。 |
|
|
6
1
您还应该知道返回301或302 HTTP响应的URL,这些响应重定向到另一个页面。一般来说,这并不意味着链接无效。例如, http://amazon.com 返回301并重定向到 http://www.amazon.com/ . |
|
|
7
1
仅仅返回200个响应是不够的;当前所有者没有更新时,许多有效的链接将在变为色情/赌博门户后继续返回“200”。 域占用者通常确保其域中的每个URL返回200。 |
|
|
8
0
毫无疑问,你会遇到一个潜在的问题,那就是当运行这个脚本的盒子无法访问互联网时…你会得到1000个误报。 您的脚本最好保留某种类型的历史记录,并且只在失败5天后报告失败。 另外,脚本应该以某种方式进行自我检查(比如检查一个已知良好的网站[谷歌?])在继续进行标准检查之前。 |
|
|
9
0
您只需要一个bash脚本就可以做到这一点。请在类似的帖子上检查我的答案 here . 它是一个一行程序,可以重用HTTP连接以显著提高速度,对临时错误重试n次,并遵循重定向。 |
|
|
Bruno Peixoto · Cron job和docker 2 年前 |
|
|
CBugnacki · 递归函数,Next JS 14 2 年前 |
|
|
kevin · Cronos工作-当周末恰好是一个月的第一天时发布 2 年前 |