Scraping with Python - Obtenez le prix de base d'une fiducie de placement sur le site Web de l'Investment Trusts Association

À propos de cet article

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

Scraping with Python - Obtenez le prix de base d'une fiducie de placement sur le site Web de l'Investment Trusts Association
Scraping avec Python - Obtenez des informations sur les attributs des fiducies d'investissement à partir du site Web de l'Investment Trusts Association
Scraping avec Python - Obtenez des informations sur les attributs des fiducies d'investissement à partir du site Web de l'Investment Trusts Association
Scraping with Python - Obtenez le prix de base d'une fiducie de placement sur le site Web de l'Investment Trusts Association
Obtenez des informations sur les actions japonaises de Yahoo Finance avec Pandas
Scraping avec Python - Obtenez des informations sur les attributs des fiducies d'investissement à partir du site Web de l'Investment Trusts Association
Essayez de gratter les données COVID-19 Tokyo avec Python
Grattage du résultat de "Schedule-kun"
Gratter la moyenne du Nikkei avec le dramaturge-python
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
Etudier le web scraping dans le but d'extraire des données de Filmarks # 2
De l'introduction de JUMAN ++ à l'analyse morphologique du japonais avec Python
Etudier le web scraping dans le but d'extraire des données de Filmarks # 2
Web scraping avec Python (cours de l'action)