0

我有一个应用程序在页面上查找某些链接(使用 CSS),并通过在 href 值上使用 agent#get 来检索链接引用的页面。这已经工作了几个月,直到今天(大概该网站已经改变了一些东西,因为其他网站仍然可以工作),而该网站正在返回一个不同的页面(在网页层次结构上,如果这有什么不同的话;但这可能是网站决定的)返回该页面而不是请求的页面)。page.uri 反映了返回的实际 URI,它与请求的 URI 不同,但响应代码为 200,因此可能没有发生重定向。

为了弄清楚发生了什么,我尝试找到链接并执行 page.links[38].click。这将返回正确的页面。以编程方式查找正确的链接有些问题(因为您不能使用 CSS 来查找链接,只能找到一个元素)所以我想继续使用我当前的方法。我试图了解使用 agent#get 与 link#click 检索页面有什么不同。在你问之前,我已经验证了 agent#get 的 URI 与我#click的链接的 URI 相同。 #click 与 #get 有什么不同,这会导致一个人检索正确的页面,而另一个人检索不同的页面?

4

2 回答 2

0

这个问题原来不是 Link#click 和 Agent#get 之间的区别,但服务器在某些情况下改变了它的响应。换句话说,我的假设是错误的。

于 2013-08-23T01:04:49.987 回答
0

亲眼看看 click 在这里做了什么。它调用get,但首先它设置引用者并进行一些机器人检查。

于 2013-08-22T21:48:54.153 回答