多站点网站身份验证,如mint.com

时间:2009-07-08 01:25:10

标签: php authentication scripting authorization

如何创建一个可以将您登录到其他网站并收集数据的网站。例如,mint.com如何允许您输入所有在线银行详细信息,并收集您的数据以便在Mint中查看。

如果有人可以通过某些关键字或任何脚本向我指明方向,我们将非常感激。

2 个答案:

答案 0 :(得分:2)

这实际上取决于你想要做什么。例如,Mint.com在一个时间点利用来自名为Yodlee的公司的SDK。该SDK / Library使用屏幕抓取技术代表Mint.com的客户获取数据。

答案 1 :(得分:2)

通常,您需要自动化站点访问和解析,即抓取。通常需要注意两个棘手的方面:1)身份验证2)无论您正在抓取什么,通常都需要您在确定要完成的任务时仔细检查其HTML。

我写了一个简单的ruby应用程序,它在一段时间内搜索和搜索Apple的翻新商店,你可以在这里查看作为一个例子(请记住,它肯定可以使用改进,但可能会让你去):

http://grapple.xorcyst.com

我写了类似的东西来从我的银行账户中获取数据(我不太热衷于提供我的凭据)使用机械化和hpricot,以及工作地点,二手车经销商等,所以它很灵活 如果你想付出努力。

这是一件很有用的事情,但您需要注意不要违反任何使用政策等。

这是另一个抓住工作发布的快速示例,向您展示它有多么简单

#!/usr/bin/ruby

require 'rubygems'
require 'mechanize'
require 'hpricot'
require 'open-uri'

url = "http://tbe.taleo.net/NA2/ats/careers/jobSearch.jsp?org=DIGITALGLOBE&cws=1"
site = WWW::Mechanize.new { |agent| agent.user_agent_alias = 'Mac Safari' }
page = site.get(url)

search_form = page.form("TBE_theForm")
search_form.org = "DIGITALGLOBE"
search_form.cws = "1"
search_form.act = "search"
search_form.WebPage = "JSRCH"
search_form.WebVersion = "0"
search_form.add_field!('location','1') #5
search_form.add_field!('updatedWithin','2')

search_results = site.submit(search_form)
doc = Hpricot(search_results.body)

puts "<b>DigitalGlobe (Longmont)</b>"

doc.search("//a").each do |a|
  if a.to_s.rindex('rid=') != nil
    puts a.to_s.gsub('"','')
  end
end