爬蟲:用python獲取oanda的歷史利率資料
阿新 • • 發佈:2018-12-14
import time import requests import pandas as pd main_url='https://fx1.oanda.com/mod_perl/user/interestrates.pl?' last_url='currency=AUD¤cy=GBP¤cy=CAD¤cy=CNY¤cy=CZK¤cy=DKK¤cy=EUR¤cy=HUF¤cy=HKD¤cy=INR¤cy=JPY¤cy=MXN¤cy=TWD¤cy=NZD¤cy=NOK¤cy=PLN¤cy=SAR¤cy=SGD¤cy=ZAR¤cy=SEK¤cy=CHF¤cy=THB¤cy=TRY¤cy=USD¤cy=XAU¤cy=XAG¤cy=XPD¤cy=XPT¤cy=US30¤cy=NAS100¤cy=SPX500¤cy=UK100¤cy=DE30¤cy=HK33¤cy=JP225¤cy=BCO¤cy=CORN¤cy=WHEAT¤cy=NL25¤cy=AU200¤cy=CN50¤cy=CNH¤cy=EU50¤cy=FR40¤cy=IN50¤cy=SG30¤cy=TWIX¤cy=SUGAR¤cy=SOYBN¤cy=NATGAS¤cy=WTICO¤cy=XCU¤cy=USB02Y¤cy=USB05Y¤cy=USB10Y¤cy=USB30Y¤cy=CH20¤cy=DE10YB¤cy=US2000¤cy=UK10YB¤cy=BTC¤cy=MBTC&submit.x=26&submit.y=7' def get_data_url(start_date=None): if start_date is None : start_date='' end_date='' year,month,day,hour,min,sec,week,year_day,_=time.localtime(time.time()) else: year,month,day,hour,min,sec,week,year_day,_=time.localtime(time.time()) end_date='{}/{}/{}'.format(month,day,year) if '-' in start_date: start_date=start_date.replace('-','/') year='' month='' day='' #start_date='1990-01-01' #end_date='2018-10-11' data_url='month={}&day={}&year={}&startdate={}&enddate={}&'.format(month,day,year,start_date,end_date) return data_url if __name__=='__main__': url=main_url+get_data_url(start_date='01-01-1990')+last_url print('開始獲取資料') page=requests.get(url) page=page.text dfs=pd.read_html(page,header=0) data=dfs[2] data['DATE']=pd.to_datetime(data['DATE']) print(data)