该页面使用 JavaScript 创建 URL:
<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
从表面上看,数据仅涵盖工作日。
这些很容易拼凑成自动 URL:
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
如果您愿意,也可以将其用于此任务。