LoginSignup
5
3

More than 5 years have passed since last update.

FRBの金利データをRSSから抜き出してみる

Last updated at Posted at 2018-04-17

はじめに

 ここのところ、どうしてもアメリカの金利が気になる。だが、毎日確認するのも非常に面倒だ。一応イールドカーブを確認するサイトはあるのだが、他のデータとの比較がし辛い。
Dynamic Yield Curve
 そこで、プログラミングの練習ついでにPythonでスクレイピングを試してみようと考えた。

データの抜き出し

初期の考案

 アメリカの金利は、FRBが毎日配信している。
Daily Treasury Yield Curve Rates
 最初はこのグラフからCSSセレクタを使ってスクレイピングを、と考えたのだがあまりにめんどくさい。また、当該ページのXMLからスクレイピングすることも試したが、毎日更新されるものであることを考えると、重複データの削除等の処理が煩雑になる。

実行した案

 そこで、FRBが毎日RSSで配信している金利データをスクレイピングすることにした。
Data: Selected Interest Rates (H.15)
 例えば、30年もの国債の利回りは次のようなXMLで公表されている。
FRB:Data:H.15 Selected Interest Rates

コード

 形式がわかったところで、早速スクレイピングしてみよう。
 まずは、定石通り、urllibでリンクからXMLを抜き出す。ただ、どうやらタグに名前空間(コロンのこと)がついているため、find("value")としただけでは検索できないらしい。この問題は、find("cd:value")とすれば解決するようだ。
 それで、動くコードはこちら。

test.py
import urllib.request as req
from bs4 import BeautifulSoup 

url= "https://www.federalreserve.gov/feeds/Data/H15_H15_RIFLGFCY30_N.B.XML"
res=req.urlopen(url)
soup=BeautifulSoup(res,"lxml")
d=soup.item
print(d.find("cb:value").string)

出力(日によって変わります)

3.03

とりあえず今日はここまで。次は1ヶ月ものから30年ものまでをまとめて抜き出せるようにしたい。

 

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3