Mechanize Link#click vs Agent#get

时间:2013-08-22 19:54:01

标签: ruby mechanize mechanize-ruby

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

在试图找出正在发生的事情时,我尝试找到链接并进行page.links [38] .click。返回正确的页面。以编程方式查找正确的链接有点问题(因为你不能使用CSS来查找链接,只有一个元素)所以我想继续使用我当前的方法。我正在尝试了解使用代理#get vs link#click检索页面的不同之处。在你提问之前,我已经验证了代理#get IS 的URI与我#click链接的URI相同。 #click与#get的做法有什么不同,可能会导致一个人检索到正确的页面而另一个人检索不同的页面?

2 个答案:

答案 0 :(得分:0)

亲眼看看what click does here。它调用get,但首先设置引用并进行一些机器人检查。

答案 1 :(得分:0)

问题证明Link#click和Agent#get没有区别,但是服务器在某些情况下改变了它的响应。换句话说,我的假设是错误的。