Il s'agit d'un script qui utilise Python et lxml pour obtenir le prix de base d'une fiducie d'investissement à partir du site Web de l'Investment Trusts Association (bibliothèque de recherche complète de fiducies d'investissement) par grattage Web. Concernant la [version Yahoo! Finance] publiée précédemment (http://qiita.com/sawadybomb/items/c34b84c0e8ef9e972691), le web scraping de Yahoo! Finance était interdit par les règles, donc je l'ai créé à la place.
Il est publié sur GitHub, alors cliquez ici pour la dernière version sawadyrr5 / PyFundJP: script d'acquisition d'informations pour les fiducies d'investissement au Japon
La recherche est effectuée par code ISIN au lieu du code de fonds, mais la syntaxe de base est exactement la même.
getNAV
# -*- coding: utf-8 -*-
# python 2.7
#Récupération des données de prix de base de l'Investment Trusts Association
import lxml.html
import datetime
def getNAV(isin, sy, sm, sd, ey, em, ed):
#Poussez l'argument dans dict
d = dict(isin=isin, sy=sy, sm=sm, sd=sd, ey=ey, em=em, ed=ed)
#Décompressez dict pour générer une URL
url = 'http://tskl.toushin.or.jp/FdsWeb/view/FDST030004.seam?isinCd={isin}\
&stdDateFromY={sy}&stdDateFromM={sm}&stdDateFromD={sd}\
&stdDateToY={ey}&stdDateToM={em}&stdDateToD={ed}&showFlg=1&adminFlag=1'.format(**d)
#Obtenez ElementTree
tree = lxml.html.parse(url)
#Date,Prix de base,Appliquer map et utf tout en obtenant tous les éléments de l'actif net-8 conversion
contents = map(lambda html: html.text.encode('utf-8').replace('\n',''), tree.xpath('//*[@id="showList"]//label'))
#Parce que c'est une liste[[date, price, cap], [date, price, cap], ...]Divisez avec
res = []
for i in range(0, len(contents)-1, 3):
date = datetime.datetime.strptime(contents[i], '%Y année%m mois%jour j').strftime('%Y%m%d')
price = int(contents[i+1].replace(',','').replace('Cercle',''))
cap = contents[i+2].replace(',','').replace('100 millions de yens','')
res.append([date, price, cap])
return res
if __name__ == '__main__':
#Poussez les paramètres dans le dict(Quatuor alpha boursier japonais (type de distribution mensuelle))
args = dict(isin='JP90C000A931', sy='2015', sm='12', sd='01', ey='2015', em='12', ed='31')
#Passez tout le dict et décompressez
print getNAV(**args)
Recommended Posts