2009-07-08 5 views
2

他のサイトにログインしてデータを収集するサイトを作成するにはどうすればいいですか?たとえば、mint.comではどのようにオンライン銀行の詳細情報を入力することができ、Mint内で閲覧できるようにデータを収集します。mint.comのようなマルチサイトのWebサイトの認証

誰かがキーワードやスクリプトを使用して私を指揮することができれば、大変感謝しています。

答えて

2

これは実際に何をしたいかによって異なります。たとえば、Mint.comは、Yodleeという会社のSDKを活用しています。このSDK /ライブラリは、スクリーンスクレイピング技術を使用して、Mint.comの顧客に代わってデータを取得します。

2

一般に、サイトへのアクセスと解析(別名スクレイピング)を自動化する必要があります。通常、2つの面倒な領域があります:1)認証2)あなたが何をしようとしているのかを判断しながら、HTMLを詳細に調べる必要があります。

私は(それは確かに改善を使用することができます覚えておいて、しかし、あなたが軌道に乗ること)擦り傷、あなたは一例として、ここでチェックアウトすることをしばらく前にAppleの改装店舗を検索し、簡単なルビーアプリを書いた:

私は、私の銀行口座からのデータを取得するのに似たようなものを書いています。私はメカニックと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