2012-07-24 67 views
4

是否有任何快速(也许是多线程)的方式来抓取我的网站(点击所有本地链接)寻找404/500错误(即确保200响应)?如何抓取我的网站以检测404/500错误?

我也希望能够将它设置为只能点击进入每种类型的链接。所以如果我有1000个分类页面,它只能点击一个。

http://code.google.com/p/crawler4j/一个不错的选择?

我想要一些非常容易设置的东西,而且我更喜欢使用PHP而不是Java(尽管如果Java速度明显更快,那也可以)。

+0

这个问题将在更适合:http://webmasters.stackexchange.com – alfasin 2012-07-24 21:33:59

+0

我感觉像一个解决方案,涉及检查的目录结构没有暴力强制HTTP请求将是最佳的。这只会对404错误有帮助,但仍有500个错误。 – Wug 2012-07-24 21:34:23

回答

2

您可以使用旧的稳定Xenu工具来抓取您的网站。

您可以配置他使用100个线程和状态码结果进行排序[500 \ 404 \ 200 \ 403]

+0

这非常酷,但理想情况下,我可以作为构建过程的一部分自动运行爬网。谢谢! – Ryan 2012-07-24 23:16:24

+0

Hay Ryan如果您为xenu支付费用,您可以获得具有命令行参数的版本并自动运行更多信息: http://home.snafu.de/tilman/xenulink.html#Future – 2012-07-24 23:24:23

+0

我还没有尽管如此,但我公司的主要开发人员也独立推荐了这一功能,因此我会将其标记为答案。 – Ryan 2012-07-26 03:46:25

0

你可以用任何数量的开源Python项目的很轻松地实现这一点:

  1. 机械化似乎很流行
  2. 美丽的汤和urllib的

你会抓取使用一个网站的方法并检查服务器的响应,这应该是非常简单的。然而,如果你有一个网站地图(或者包含你所有网址的任何列表),你可以试着用cURL或者urllib打开每个网站,并且无需抓取就可以得到你的回应。

0

定义“快”?你的网站有多大? cURL将是一个很好的开始:http://curl.haxx.se/docs/manual.html

除非你有一个真正巨大的网站,并且需要在秒的时间尺度上进行测试,只需将URL列举到列表中并尝试每个网站。

+1

这是一个很大的网站,我不知道所有的网址。所以我认为抓取链接(抓取)是必要的。 – Ryan 2012-07-24 22:35:28

+1

你怎么能不知道所有的网址?你不能读自己的目录? – 2012-07-25 06:53:31