Scraping mit Python - Holen Sie sich den Grundpreis eines Investment Trusts über das Web der Investment Trusts Association

Über diesen Artikel

Es ist ein Skript, das Python und lxml verwendet, um den Grundpreis eines Investment Trusts von der Website der Investment Trusts Association (umfassende Investment Trust-Suchbibliothek) durch Web-Scraping abzurufen. In Bezug auf die zuvor veröffentlichte Yahoo! Finance-Version war das Web-Scraping von Yahoo! Finance durch die Regeln verboten, daher habe ich es stattdessen erstellt.

Es wird auf GitHub veröffentlicht. Klicken Sie hier, um die neueste Version anzuzeigen sawadyrr5 / PyFundJP: Informationsbeschaffungsskript für Investment Trusts in Japan

Die Suche erfolgt nach ISIN-Code anstelle von Fondscode, aber die grundlegende Syntax ist genau dieselbe.

getNAV


# -*- coding: utf-8 -*-
# python 2.7
#Scraping von Basispreisdaten der Investment Trusts Association
import lxml.html
import datetime

def getNAV(isin, sy, sm, sd, ey, em, ed):
    #Schieben Sie das Argument ins Diktat
    d = dict(isin=isin, sy=sy, sm=sm, sd=sd, ey=ey, em=em, ed=ed)

    #Entpacken Sie dict, um eine URL zu generieren
    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)

    #Holen Sie sich ElementTree
    tree = lxml.html.parse(url)

    #Datum,Grundpreis,Wenden Sie map und utf an, während Sie alle Elemente des Nettovermögens abrufen-8 Umwandlung
    contents = map(lambda html: html.text.encode('utf-8').replace('\n',''), tree.xpath('//*[@id="showList"]//label'))

    #Weil es eine Liste ist[[date, price, cap], [date, price, cap], ...]Teilen mit
    res = []
    for i in range(0, len(contents)-1, 3):
        date = datetime.datetime.strptime(contents[i], '%Y Jahr%m Monat%d Tag').strftime('%Y%m%d')
        price = int(contents[i+1].replace(',','').replace('Kreis',''))
        cap = contents[i+2].replace(',','').replace('100 Millionen Yen','')
        res.append([date, price, cap])

    return res

if __name__ == '__main__':
    #Schieben Sie die Parameter in das Diktat(Japanisches Alpha-Quartett (monatliche Vertriebsart))
    args = dict(isin='JP90C000A931', sy='2015', sm='12', sd='01', ey='2015', em='12', ed='31')
    #Übergeben Sie das ganze Diktat und packen Sie es aus
    print getNAV(**args)

Recommended Posts

Scraping mit Python - Holen Sie sich den Grundpreis eines Investment Trusts über das Web der Investment Trusts Association
Scraping mit Python-Get-Attributinformationen von Investment Trusts aus dem Web der Investment Trusts Association
Scraping mit Python-Get-Attributinformationen von Investment Trusts aus dem Web der Investment Trusts Association
Scraping mit Python - Holen Sie sich den Grundpreis eines Investment Trusts über das Web der Investment Trusts Association
Holen Sie sich japanische Aktieninformationen von Yahoo Finance mit Pandas
Scraping mit Python-Get-Attributinformationen von Investment Trusts aus dem Web der Investment Trusts Association
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Scraping das Ergebnis von "Schedule-Kun"
Schaben Nikkei Durchschnitt mit Dramatiker-Python
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
Studieren von Web Scraping zum Extrahieren von Daten aus Filmarks # 2
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Studieren von Web Scraping zum Extrahieren von Daten aus Filmarks # 2
Web Scraping mit Python (Aktienkurs)