2012-11-23 38 views
1

目標:想從使用Python http://www.tocom.or.jp/historical/download.html使自動化的各種的.csv文件的下載(這不是,雖然主要的問題)csv文件

具體細節:特別是我我試圖下載「tick數據」的csv文件(從底部開始第五個標題,爲期5天)

問題:當我看到此網頁的源代碼時,請查找「Tick Data 「我看到這些5個.csv文件的引用,但它們沒有使用通常的href標籤我正在使用Python(urllib)我需要知道這5個.csv文件的URL,但不知道如何獲取它們。

這不是Python本身的問題,而是關於如何找到可以從網頁上下載的一些.csv的URL。因此,沒有提供代碼。

回答

3

該頁面使用JavaScript來創建的網址:

<select name="tick"> 
    <option value="TOCOMprice_20121122.csv">Nov 22, 2012</option> 
    <option value="TOCOMprice_20121121.csv">Nov 21, 2012</option> 
    <option value="TOCOMprice_20121120.csv">Nov 20, 2012</option> 
    <option value="TOCOMprice_20121119.csv">Nov 19, 2012</option> 
    <option value="TOCOMprice_20121116.csv">Nov 16, 2012</option> 
</select> 
    <input type="button" onClick="location.href='/data/tick/' + document.form.tick.value;" 
     value="Download" style="width:7em;" /> 

它結合了路徑,瀏覽器將使用逆水現場。所以每個網址是:

http://www.tocom.or.jp + /data/tick/ + TOCOMprice_*yearmonthday*.csv 

從外觀上看,數據只涵蓋工作日。

這些都是很容易湊齊到自動化網址:

import requests 
from datetime import datetime, timedelta 

start = datetime.now() - timedelta(days=1) 
base = 'http://www.tocom.or.jp/data/tick/TOCOMprice_' 

next = start 
for i in range(5): 
    r = requests.get(base + next.strftime('%Y%m%d') + '.csv') 
    # Save r.content somewhere 
    next += timedelta(days=1) 
    while next.weekday() >= 5: # Sat = 5, Sun = 6 
     next += timedelta(days=1) 

我用requests它更容易使用的API,但如果你願意的話,你可以使用urllib2完成這個任務了。