2009-04-29 43 views
2

我想編寫一個程序,分析你的幻想棒球隊,並通知你建議的行動,可能每天多次。問題是,你不是在我的網站上玩奇幻棒球,你是在雅虎,cbs或espn等遊戲。如何以最佳方式代表第三方篩選密碼保護網站?

在大多數這些網站上,幻想團隊和聯盟都不公開,所以您必須先登錄並加入聯盟成員才能看到聯盟的球隊。

我需要的是每個這些網站上的團隊頁面的純HTML,這些網站將發送到我的服務器,然後我可以解析並分析該文件併發送用戶通知。

問題是我需要用戶名/密碼組合來輕鬆地將這些數據傳到我的服務器當我需要它時我認爲會有很多人不願意委託他們的yahoo/espn/cbs密碼給我。

我已經提出了幾種可能的方式來解決這個問題:

  1. 最明顯的方法就是問他們的憑據在其自己的球隊託管網站。然後,我可以以編程方式登錄並請求我需要的數據。我猜想有很多人會很樂意給我他們的憑據,其中一些人並不那麼重要。

  2. 編寫桌面客戶端,然後用戶下載。客戶端需要他們的憑證,但它基本上可以完成與基於服務器的版本完全相同的操作,登錄,請求頁面並將頁面發送回我的服務器。不同的是他們的密碼永遠不需要離開他們的桌面。他們的電腦需要開啓,並且這個程序運行這個方法才能工作。

  3. 編寫導航到我需要的頁面的瀏覽器加載項,使用從先前登錄中保存的cookie登錄到站點,並將頁面發送回我的服務器。這並不要求我的軟件需要他們的密碼,但是如果cookie過期了,我就會陷入困境,而且我對瀏覽器插件瞭解不多。

我敢肯定還有其他選擇,但這些都是我到目前爲止所提出的。

我有兩個問題: 1.這種類型的任務有什麼其他可能性? 2.我是否高估了人們不願意給我他們的雅虎(例如)密碼?選項(1)高於顯而易見的選擇?

在評論中提到我嘗試使用雅虎管道,這看起來像一個很有希望的建議,所以我稍微探討了一下。現在看了this,我不認爲這是一種選擇。所以,它看起來像我會選擇1.

+0

您可能還想檢查這是否允許通過yahoo/espn/cbs的服務條款... – Stephan202 2009-04-29 06:47:21

+0

雅虎支持openid,以便您可以通過它訪問api? – mjallday 2009-04-29 07:30:45

回答

2

這是我在幾年前想要做同樣的事情時遇到的一個問題。我們的網站是http://benchcoach.com,我們正在考慮的選項如下:

原創我們考慮獲取用戶的憑據和登錄。然後我們會登錄並刮掉他們的聯賽和球隊信息。問題是,在閱讀了各種服務條款之後,這肯定會違反服務條款。最重要的是,Yahoo!絕對是我們正在考慮的網站之一,他們的用戶有電子郵件(我們可以訪問敏感數據)和Yahoo!錢包。另外,對於雅虎/ ESPN/CBS來說,通過IP地址阻止我們的編程登錄將會非常微不足道。

我們解決的解決方案(不是100%滿意,但似乎工作正常)要求我們的用戶安裝一個小書籤(如delicious,digg或reddit),將當前html頁面發佈到我們的服務器,可以解析數據並加載我們的數據庫。如果他們仍然登錄到他們的雅虎/ ESPN/CBS帳戶,我們會直接將他們引導至網頁,否則,這些網站會提示進行身份驗證。再次單擊書籤,將頁面發佈到我們的服務器。

這種方法的優點是我們從來沒有收集任何人的證書,所以任何安全問題都會得到緩解。其次,它將使雅虎/ ESPN/CBS無法阻止對我們的服務的訪問,因爲我們絕不會直接連接到他們的服務器,而是用戶的瀏覽器將其瀏覽器的內容發佈到我們的服務器。

與此相關的問題是需要2次點擊才能將頁面發佈到我們的網站。對於頭對頭的聯賽,我們需要3-4頁,這將需要我們的用戶6-8點擊同步他們的聯賽到我們的服務器。我們仍在尋找這方面的選擇。

一個重要的提示是,我在一年前的一次會議上遇到了雅虎夢幻足球網站的產品經理。我們談到了我們如何獲得雅虎數據,並且他證實獲取憑證會違反他們的TOS,他們可能會阻止我們。雖然我認爲他們不會這樣做,但這將使得很難投入時間和精力來開發這種服務,只能讓他們通過關閉賬戶來阻止我們的網站和用戶流失。

1

選項1是明顯的選擇。信任你的網站的人將提供詳細信息。屏幕抓取時,您無法通過其他方式登錄其他網站。

+0

我認爲你會好起來的1.你要求的是一個幻想棒球隊的密碼,而不是一個銀行賬戶,所以我希望大多數人都會樂於交出。 – 2009-04-29 07:10:17

+0

確實如此,但如果該網站是雅虎,您可能還會交出您的電子郵件/羣組/其他憑據,因爲它們都可以鏈接到同一個帳戶。 – Zxaos 2009-04-29 07:23:27

2

一個可能更復雜的答案可能可以通過(例如)雅虎管道完成。

假設你創建了一個管道,用於提示用戶輸入他們的憑據,併爲他們提供一個包含他們的數據的url。他們在他們的網站上輸入這個URL,而不必直接提供他們的憑證。更好的是,爲了安全意識,在輸入任何信息之前可以檢查管道實際上在做什麼。

缺點是增加了複雜性(以及您必須編寫和維護管道)。話雖如此,您可以直接提供一個鏈接到您網站上發佈的管道,以儘可能簡化事情。

相關問題