0

我的任务是清理几个大型新闻/媒体网站的索引,以改进我们的分析报告。这些索引中的许多 URL 都已过时,因此我正在寻找一种解决方案来简单地检查每个 URL a) 是否存在或 b) 不存在。

总的来说,我有大约 40,000 多个 URL 来检查我目前在 .csv 中拥有哪些

对此的任何建议或指导将不胜感激!

4

3 回答 3

0

根据您对服务器的访问权限,您有多种选择。

使用来自任何机器的脚本

一种解决方案是使用脚本请求所有 URL。向每个 URL发送HTTP-HEAD 请求并检查404200响应代码可能是最简单的。如果服务器不是很过载,它们应该能够处理这么多的请求。如果您不想将负载增加太多,您可以将您的请求安排在夜间。

在服务器上或离线的日志分析

如果您有权访问网络服务器日志文件,您还可以扫描它们以获取 URL 和相应的响应代码。这显然只有在服务器正在记录请求并且您可以访问这些文件时才有效。这种方法的好处是您不会在服务器上创建任何不必要的负载,并且可以花费您需要的时间来分析文件。另一方面,日志文件可能非常大,并且您文件中的 URL 最近可能不会被调用。

于 2013-10-04T14:50:32.057 回答
0

您可以curl通过 bash 脚本执行并检查每个结果。

如:

grep <filename> | xargs curl

不过,从您的角度来看,这可能- 难以置信 -难以阅读。

或者,您可以使用Selenium + 单元测试来访问每个 url 并报告哪些失败。唯一的缺点是以 .csv 格式一次读取一个 URL 文件。从由换行符分隔的文本文件中执行此操作可能会更容易。

像这个例子这样的东西会有很大帮助。

另外,如果你把脚本写得足够好,你只需点击开始,让魔法发生。您将看到每个测试的结果。

我希望这有帮助。

于 2013-10-04T14:55:41.120 回答
0

我同意 Byf-ferdy 的观点,我会检查响应代码。对我来说,最简单的方法是使用 JMeter。它有 GUI,所以你不需要编程。如果您下载 JMeter,那么“包装盒中”有几个示例。示例之一是如何从 .csv 文件中读取数据。您可以根据需要简单地自定义该示例。

于 2013-10-06T07:25:48.863 回答