0

我正在编写一个机器人来自动从我的 WordPress 博客下载页面。该机器人可以毫无问题地获取大部分页面。例如,它可以轻松获取给定标签的文章列表的第一页:http ://example.com/myblog/index.php/archives/tag/mytag 。但是,由于某种原因,它无法获取后续页面,例如http://example.com/myblog/index.php/archives/tag/mytag/page/2

我试图弄清楚发生了什么事,这就是我发现的:虽然服务器正常响应大多数请求,但在此类请求时,它会以 301 永久重定向进行响应。特别是,Location 标头设置为与请求完全相同的 URL!基本上,服务器告诉我将我对页面http://example.com/myblog/index.php/archives/tag/mytag/page/2的请求重定向到...相同的页面:P

当尝试从浏览器访问该页面时,我可以毫无问题地获得该页面。我想也许浏览器会发送一些我的机器人没有发送的标头(包括 cookie),所以我从浏览器的 Web 控制台复制了标头(包括 cookie),但行为没有改变。

我将不胜感激有关可能导致这种奇怪行为的任何建议,我可以做些什么来更好地了解正在发生的事情,当然还有我可以做些什么来自动获取这些页面,就像我获取他们的兄弟一样。

谢谢!

4

1 回答 1

0

看来这篇文章并没有引起太大的公众兴趣。但是,如果有人遇到同样的问题并找到这篇文章,这是我使用的解决方案。重要提示:我仍然不理解我目睹的行为,如果有人能解释它,我将不胜感激。

所以我找到的解决方案基本上是使用 URL http://example.com/myblog/archives/tag/mytag?paged=2而不是http://example.com/myblog/index.php/archives/标签/mytag/page/2。有趣的是,当从浏览器浏览该 URL 时,该 URL 会被重定向到原始 URL!但是当机器人请求它时,它得到的页面没有重定向或任何东西。(所以我设法做我想做的事,但我不知道那里发生了什么,为什么首先会出现问题,以及为什么这个解决方案有效:对于一个 URL,机器人获得无限重定向,浏览器只是获取页面,而对于另一个浏览器被重定向 [finitely] 并且机器人获取页面。我还没有弄清楚这个......)

于 2012-08-13T01:09:09.770 回答