当我注意到Facebook Debugger和其他抓取工具无法解析我的页面时,整个事情就开始了。 Facebook抛出一个严重的错误,说它不能遵循重定向。我相信搜索引擎机器人正在达到同样的目的。该网站通过所有主要网络浏览器正常运行。
值得一提的是,我正在尝试使用IIS8下的Web窗体进行ASP.NET路由。
给定一个网站(http://example.com),这就是发生的事情。
案例1:尝试访问root,这是我使用Web Sniffer模拟器获得的
案例1观察:
我注意到的第一件事是'302'重定向而不是'200 OK'。它提供302重定向,带或不带前导'www'。
我注意到位置标题只是“/”,由IIS的页面确认,我用常规浏览器看不到,这表示页面被移动到“/”。我相信在这一点上有些东西搞砸了,爬虫因某种原因无法完成。
案例2 :尝试使用Web嗅探器模拟器访问给定的类别页面
案例2观察:
正如您可能已经想到的那样,与案例1相同。再次,Facebook调试器无法通过它,导致重定向无法跟进。
问题:
1:如何在位置标题中强制使用绝对路径而不是相对路径,这是否足以让抓取工具完成?
2:在网站的www和非www版本中,首先会发生什么导致302重定向?
答案 0 :(得分:3)
您的网络应用程序很可能取决于cookie。应用程序发送Set-Cookie
标头并重定向到同一页面,以便接收带有cookie数据的新请求。搜索引擎/机器人,Facebook机器人和您的Web Sniffer模拟器将不会发送该cookie数据,因此Web应用程序不断发送302重定向响应。
解决方案是将您的应用程序更改为不需要cookie,只需查看您的网页即可。