0

当我注意到 Facebook Debugger 和其他爬虫工具无法解析我的页面时,整个事情就开始了。Facebook 抛出一个严重错误,指出它无法遵循重定向。我相信搜索引擎机器人正在达到同样的目的。该网站通过所有主要的网络浏览器正常运行。

值得一提的是,我正在试验 ASP.NET 路由,使用 IIS8 下的 Web 窗体。

给定一个网站 ( http://example.com ),这就是发生的事情。

案例1:尝试访问root,这是我使用Web Sniffer模拟器得到的

在此处输入图像描述

案例1观察:

我注意到的第一件事是“302”重定向而不是“200 OK”。它提供了带有或不带有前导“www”的 302 重定向。

我注意到位置标题只是“/”,由来自 IIS 的页面确认,我无法使用常规浏览器看到,它表示页面已移动到“/”。我相信此时有些事情搞砸了,爬虫由于某种原因无法完成。

案例 2:尝试使用 Web Sniffer 模拟器访问给定类别页面

案例2观察:

正如您可能已经想到的那样,与案例 1 相同。Facebook 调试器再次无法通过它,导致它无法遵循重定向。

在此处输入图像描述

问题:

1:如何在位置标头中强制使用绝对路径而不是相对路径,这足以让爬虫跟踪吗?

2:什么可能导致网站的 www 和非 www 版本首先发生 302 重定向?

4

1 回答 1

2

您的 Web 应用程序很可能依赖于 cookie。应用程序发送一个Set-Cookie标头并重定向到同一页面,以便接收具有可用 cookie 数据的新请求。搜索引擎/机器人、Facebook 机器人和您的 Web Sniffer 模拟器不会发送该 cookie 数据,因此 Web 应用程序会继续发送 302 重定向响应。

解决方案是将您的应用程序更改为不需要 cookie 来仅查看您的网页。

于 2013-02-20T11:35:49.353 回答