Bap*_*iee 19 ruby scripting https login
好吧,所以这里是故事:我正在开发一个Ruby应用程序,它将从网站获取数据,并将这些数据聚合成XML文件.
我需要从中获取数据的网站没有我可以使用的任何API,所以我唯一能想到的是登录网站,依次加载有我需要的数据的页面(在这种情况下,PMs) ;我想存档它们,然后解析返回的HTML.
但问题是,我不知道以编程方式模拟登录会话的任何方法.
是否有人有任何建议,或知道我可以用来成功登录到https页面的任何经过验证的方法,然后使用登录中的临时cookie会话以编程方式从网站加载页面?它不一定是一个只有Ruby的解决方案 - 我只想知道我是如何实现这一点的.如果有帮助,有问题的网站是使用Microsoft的.NET Passport服务作为其登录/会话机制的网站.
有关此事的任何意见都是受欢迎的.谢谢.
joh*_*nes 38
Mechanize是ruby库,它模仿Web浏览器的行为.您可以单击链接,填写表单并提交.它甚至有历史和记忆饼干.看来你的问题可以在机械化的帮助下轻松解决.
以下示例来自http://mechanize.rubyforge.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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17885 次 |
| 最近记录: |