如何使用ruby脚本通过https登录到网站?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我需要从中获取数据的网站没有我可以使用的任何API,因此我唯一能想到的就是登录到网站,顺序加载具有我需要的数据的页面,然后解析返回的HTML。

但问题是,我不知道任何编程模拟登录会话的方式。

有什么方案么?

提问于
用户回答回答于

Mechanize

机器是一个ruby库,它模仿网页浏览器的行为。你可以点击链接,填写表格并提交。它甚至有历史和cookie。你的问题似乎可以通过 Mechanize 很容易地解决。

下面的示例摘自http://machize.rubybea.org:

require 'rubygems'
require 'mechanize'

a = Mechanize.new
a.get('http://rubyforge.org/') do |page|
  # Click the login link
  login_page = a.click(page.link_with(:text => /Log In/))

  # Submit the login form
  my_page = login_page.form_with(:action => '/account/login.php') do |f|
    f.form_loginname  = ARGV[0]
    f.form_pw         = ARGV[1]
  end.click_button

  my_page.links.each do |link|
    text = link.text.strip
    next unless text.length > 0
    puts text
  end
end
用户回答回答于

你可以尝试使用wget来获取页面。可以使用此应用分析登录过程www.portswigger.net/proxy/。

扫码关注云+社区