もはや、何通りもあるので、しつこいかもしれんが、、
from bs4 import BeautifulSoup import urllib.request as req url = "https://stocks.finance.yahoo.co.jp/stocks/detail/?code=usdjpy" res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") price = soup.select_one(".stoksPrice").string print("usd/jpy=", price)
[vagrant@localhost python]$ python3 app.py
usd/jpy= 111.110000
こんな小国の通貨だれが買うんだ、ということで
from bs4 import BeautifulSoup import urllib.request as req url = "https://info.finance.yahoo.co.jp/fx/list/" res = req.urlopen(url) soup = BeautifulSoup(res, "html.parser") usdjpy = soup.select_one("#USDJPY_chart_bid").string eurjpy = soup.select_one("#EURJPY_chart_bid").string audjpy = soup.select_one("#AUDJPY_chart_bid").string gbpjpy = soup.select_one("#GBPJPY_chart_bid").string nzdjpy = soup.select_one("#NZDJPY_chart_bid").string cadjpy = soup.select_one("#CADJPY_chart_bid").string chfjpy = soup.select_one("#CHFJPY_chart_bid").string print("usd/jpy=", usdjpy) print("eur/jpy=", eurjpy) print("aud/jpy=", audjpy) print("gbp/jpy=", gbpjpy) print("nzd/jpy=", nzdjpy) print("cad/jpy=", cadjpy) print("chf/jpy=", chfjpy)
全く問題なく行けますね。
[vagrant@localhost python]$ python3 app.py
usd/jpy= 111.099
eur/jpy= 129.781
aud/jpy= 82.113
gbp/jpy= 145.734
nzd/jpy= 75.621
cad/jpy= 85.127
chf/jpy= 111.916
ただ、表示するだけだと意味がないので、裁定取引にしないと意味ないですね。
例えば、
-> ある時間帯に一分毎にスクレイピングして、価格差のボラティリティが一定以上の場合は、自動でロング、ショートポジションを入れる
こんなんで勝てるか?