【问题标题】:Screen scraping Akamai's control panel using Mechanize for Ruby - Cookies Issue使用 Mechanize for Ruby 抓取 Akamai 控制面板的屏幕 - Cookie 问题
【发布时间】:2011-11-09 12:40:03
【问题描述】:

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

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."

页面认为我禁用了 cookie 的事实使我无法登录。有什么想法吗?

【问题讨论】:

  • 我没用过机械化;我假设它是否 处理基于 HTTP 的 cookie?也许该页面正在使用 javascript 设置 cookie?
  • HTML中有这样的字符串并不一定意味着它已经显示给用户了。我在页面源代码中也看到了该字符串,但在浏览器中我只看到普通的用户名和密码表单。
  • 请参阅我的 cmets 关于蒂亚戈的回答,但我相信您的假设是正确的 Mladen。

标签: ruby screen-scraping nokogiri mechanize


【解决方案1】:

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

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://mechanize.rubyforge.org/Mechanize/Cookie.html http://mechanize.rubyforge.org/Mechanize/CookieJar.html

【讨论】:

  • 谢谢蒂亚戈。重要的是要注意 agent.cookie_jar.add() 需要 2 个参数 uri = URI.parse("https://control.akamai.com") 然后 agent.cookie_jar.add(uri, cookie)。感谢您让我走上正轨,非常有帮助。 -布赖恩
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多