如何find一个网站上的链接

推荐哪些技术或工具来查找网站上的链接?

我可以访问日志文件,所以可以想象,parsing这些寻找404错误,但希望自动化将遵循(或试图跟随)一个网站上的所有链接。

请参阅LinkChecker for Firefox。

对于Mac OS,有一个工具完整性 ,可以检查链接中断的URL。

对于Windows,有Xenu的Link Sleuth 。

刚刚find了一个wget脚本,可以完成你所要求的function。

wget --spider -o wget.log -e robots=off --wait 1 -r -p http://www.example.com 

对此的信用到这个页 。

我喜欢W3C链接检查器 。

请参阅linkchecker工具:

LinkChecker是一个免费的,GPL许可的网站validation器。 LinkChecker检查Web文档或完整网站中的链接。

您可以使用parsing您的日志文件的工具,并为您提供“断开的链接”报告(例如模拟或Google 网站pipe理员工具 ),或者运行一个蜘蛛网站并报告损坏链接的工具(例如W3C链接检查器 )。

在.NET应用程序中,您可以将IIS设置为将所有请求传递给ASP.NET,然后在全局error handling程序中,您可以捕获并logging404错误。 这是除了蜘蛛网站检查内部缺less的链接,你会做的。 这样做可以帮助从其他网站find损坏的链接,然后您可以使用301redirect到正确的页面修复它们。

为了帮助您内部testing您的网站,还有微软SEO工具包。

当然,最好的技术是在编译时避免这个问题! 在ASP.NET中,您可以通过要求每个页面上的静态方法生成所有链接,以便只生成一个给定URL的位置。 例如http://www.codeproject.com/KB/aspnet/StronglyTypedPages.aspx

如果你想要一个完整的C#爬虫,这里有一个: – http://blog.abodit.com/2010/03/a-simple-web-crawler-in-c-using-htmlagilitypack/

我们的商业产品DeepTrawl可以做到这一点,可以在Windows / Mac上使用。

披露:我是DeepTrawl的首席开发人员。

最好的方法是创build一个运行在整个站点上的小型机器人,并logging结果。 我这样做是为了在部署之前testing我的网站,它运作得非常好。

你最好的select就是用自己的脚本语言把你自己的蜘蛛拼成一团,可以按照下面的方式recursion地完成:

 // Pseudo-code to recursively check for broken links // logging all errors centrally function check_links($page) { $html = fetch_page($page); if(!$html) { // Log page to failures log ... } else { // Find all html, img, etc links on page $links = find_links_on_page($html); foreach($links as $link) { check_links($link); } } } 

一旦您的网站得到了谷歌的一定的关注,他们的网站pipe理员工具就显示用户可能遇到的链接断断续续的无价之宝,但这是相当反动的 – 死链接可能会在谷歌索引他们并logging404在您的网站pipe理员面板中。

编写像上面这样的自己的脚本将显示所有可能的断开链接,而无需等待谷歌(网站pipe理员工具)或您的用户(访问日志中的404)绊倒他们。

LinkTiger似乎是一个非常好的(虽然非免费)服务来做到这一点。 我没有使用它,只是想添加,因为它还没有提到。

有一个名为CheckWeb的Windows应用程序。 它不再开发,但它运作良好,代码是开放的(C ++我相信)。

你只要给它一个url,它会抓取你的网站(和外部链接,如果你select),报告任何错误,图像/页面的“重量”等。

http://www.algonet.se/~hubbabub/how-to/checkweben.html