屏幕抓取Akamai';s控制面板使用Mechanize解决Ruby-Cookie问题

屏幕抓取Akamai';s控制面板使用Mechanize解决Ruby-Cookie问题,ruby,screen-scraping,nokogiri,mechanize,Ruby,Screen Scraping,Nokogiri,Mechanize,我正试图从Akamai的控制面板上截取一些数据,但在通过mechanize for Ruby登录页面时遇到问题 require 'rubygems' require 'mechanize' agent = Mechanize.new url = 'http://control.akamai.com' page = agent.get( url ) puts page.content 查看页面后,我发现显示了: "Cookie support has been disabled in yo

我正试图从Akamai的控制面板上截取一些数据,但在通过mechanize for Ruby登录页面时遇到问题

require 'rubygems'
require 'mechanize'

agent = Mechanize.new

url = 'http://control.akamai.com'
page = agent.get( url )

puts page.content
查看页面后,我发现显示了:

"Cookie support has been disabled in your browser. Please enable cookies before continuing."

页面认为我禁用了cookies,这一事实阻止了我登录。有什么想法吗?

您可以指定其他用户代理:

agent.user_agent_alias = 'Mac Safari'
或/和手动创建cookie:

cookie = Mechanize::Cookie.new(key, value)
cookie.domain = '.akamai.com'
cookie.path = '/'
agent.cookie_jar.add(cookie)
有关Ruby Mechanize Cookie的更多信息,请阅读以下页面:


我没有使用过机械化;我假设它能处理基于HTTP的cookies?也许页面正在使用javascript设置cookies?事实上HTML中有这样的字符串并不一定意味着它已经显示给用户。我在页面源代码中也看到了这个字符串,但在浏览器中我只看到了普通的用户名和密码形式。请看我对Thiago答案的评论,但我相信你的假设是正确的Mladen。谢谢Thiago。需要注意的是,
agent.cookie\u jar.add()
接受2个参数
uri=uri.parse(“https://control.akamai.com”
然后
代理.cookie\u jar.add(uri,cookie)
。谢谢你让我走上正轨,非常有帮助-布瑞恩