2014-11-05 311 views
1

對此類編程工作不熟悉,對嵌入式系統更熟悉。我有很少的Web編程XP。爲CSV抓取網站數據

我想什麼來實現:

一個網站(danglefactory.com)有,我想下載到CSV處理統計的一大桌。在網站上,有一個按鈕調用內部腳本來製作CVS並準備下載。

Referer的http://www.danglefactory.com/projections/skaters/daily

腳本http://www.danglefactory.com/scripts/copy_csv_xls.swf

我更喜歡蟒蛇的解決方案,將能夠以這個CSV取無論是臨時或用於加工的本地存儲。

謝謝你。

+0

我不知道如何捕捉該csv,但你可以做一個JSON調用。而不是將JSON轉換爲csv。 – 2014-11-05 15:13:44

回答

0

你可以採取的第一種方法是相當低級的。

在引擎蓋下,有可以模擬使用的JSON API調用,例如requests

這裏是你如何能得到每日預測:

import requests 

url = 'http://www.danglefactory.com/api/DailySkaterProjections?_=1415200157912' 
response = requests.get(url) 

data = response.json() 
print data 

打印:

[{u'A': 0.61, 
    u'Blocks': 0.37, 
    u'Corsi': 0.53, 
    u'FOL': 9.07, 
    u'FOW': 8.95, 
    u'FOWinPerc': 49.6, 
    u'G': 0.39, 
    u'Giveaways': 0.89, 
    u'Hits': 0.54, 
    u'Name': u'John Tavares', 
    u'Opponent': u'ANA', 
    u'P': 0.99, 
    u'PIM': 0.51, 
    u'PPA': 0.24, 
    u'PPG': 0.11, 
    u'PlayerID': 411, 
    u'PlusMinus': 0.05, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.0, 
    u'SHG': 0.0, 
    u'ShPerc': 12.6, 
    u'Shots': 3.1, 
    u'TOI': 20.39, 
    u'Takeaways': 0.82, 
    u'Team': u'NYI'}, 
{u'A': 0.7, 
    u'Blocks': 1.0, 
    u'Corsi': 0.47, 
    u'FOL': 8.69, 
    u'FOW': 8.43, 
    u'FOWinPerc': 49.3, 
    u'G': 0.28, 
    u'Giveaways': 0.84, 
    u'Hits': 1.49, 
    u'Name': u'Ryan Getzlaf', 
    u'Opponent': u'NYI', 
    u'P': 0.97, 
    u'PIM': 0.68, 
    u'PPA': 0.22, 
    u'PPG': 0.07, 
    u'PlayerID': 161, 
    u'PlusMinus': 0.06, 
    u'PrimaryPosition': u'C', 
    u'SHA': 0.04, 
    u'SHG': 0.02, 
    u'ShPerc': 11.9, 
    u'Shots': 2.3, 
    u'TOI': 20.52, 
    u'Takeaways': 0.61, 
    u'Team': u'ANA'}, 

    ... 

}] 

然後,您可以相應地使用csv模塊轉換結果爲CSV。


另一種解決辦法是使用瀏覽器selenium自動化工具,但問題是,CSV按鈕和表是一個Flash對象,selenium cannot interact with內。


可以使用,雖然圖像識別和屏幕自動化工具,如sikuli發現CSV按鈕,點擊它。這是,如果你仍然想留在「高層次」。

希望有所幫助。

+1

我想你是指這一個:http://www.danglefactory.com/api/DailySkaterProjections – 2014-11-05 15:17:55

+0

@VincentBeltman喲,謝謝。 – alecxe 2014-11-05 15:21:04

+0

謝謝你的建議,我知道必須有一種方法來利用他們提供的漂亮的API,並且它有多好,它是以原始JSON開始的。我最初試圖解析HTML和刮表,然後我發現你的建議。在R中快速實現,即使需要python解決方案。 – Neurax 2014-11-25 00:33:17