グーグルシートにおけるウェブスクレーピング(パーソナルファイナンス)
5689 ワード
TL使用:博士
TOC : Bob's Your Uncle
My Solution Scraping for yield
Scraping for dividend ($)
References あなたはGoogleシートを使用してwebscrapeを知ることができましたか?私もそうではありませんが、2022年であり、私たちには、多くの新しいランダムなものを学ぶために、今年9ヶ月があります.
私は個人的な金融について読書を楽しみます、そして、私がTWAcanのボブである記事を読むことを楽しむ1人のそのような人.COM .彼はpost 彼が使う方法を詳述すること
私は、彼が持っていたものを修正して、また、約
ここでは、彼が配当を得て、Yahoo金融から情報を得るために使う細胞機能の1つの例です:
上の例では
あなたはボブの記事をチェックアウトする場合は、常に彼の公式を更新する必要があることがわかりますGoogleファイナンスとヤフーファイナンスは、レイアウトを更新し続ける.また、
私は配当と収量のための他の情報源を見つけることを決めたdividend history . 良いのは、このソースはまた、GoogleとYahoo金融の場合ではないETFSの配当と収量情報を持っていることです.レイアウトがどれくらい頻繁に更新されるかについて、私はわかりません、しかし、それがどれくらい単純であるか、そして、それが一つの目的にどのように役立つかを与えられて、私はそれがあまりにしばしば更新されないと仮定します.
2番目の引数
一部のティッカーがニュースやアナウンスを持っていないので、これは完璧ではありません
この場合、配当履歴テーブルは実際には
私の第二の解決策は
とにかく、それは楽しい小さいウサギ穴でした、そして、私は個人的な金融を含むかもしれないか、持たないかもしれないシートの上でウェブスクレーピングのために多くの用途を見つけます!
https://www.tawcan.com/using-google-spreadsheet-dividend-investment/#Even_Newer_Formula1
https://support.google.com/docs/answer/3093281?hl=en
https://www.w3schools.com/xml/xpath_syntax.asp
IMPORTHTML()
and IMPORTXML()
webscrape :)TOC :
My Solution
Scraping for dividend ($)
ボブのおじさん
私は個人的な金融について読書を楽しみます、そして、私がTWAcanのボブである記事を読むことを楽しむ1人のそのような人.COM .彼はpost 彼が使う方法を詳述すること
IMPORTHTML()
and IMPORTXML()
Googleファイナンスとヤフーファイナンスから配当データを削る.これは、ビルトイン以来、本当に便利ですGOOGLEFINANCE()
関数はこの情報を持っていない.私は、彼が持っていたものを修正して、また、約
XPath
and XQuery
.ここでは、彼が配当を得て、Yahoo金融から情報を得るために使う細胞機能の1つの例です:
=SPLIT(INDEX(IMPORTHTML(concatenate("https://finance.yahoo.com/quote/",B2),"table",2),6,2)," ")
使用IMPORTHTML()
あなただけのスクレーピングの選択を得る"table"
or "list"
. 上の例では
B2
ストック・ティッカー・シンボルRY
はurl
我々がこすりたいページに.我々は、取得を終了2
ページのndテーブルIMPORTHTML()
. シートは私たちのために非常に有用ではないテーブルをインポートするので、我々はさらにテーブルを使用して解析を終了しますINDEX()
我々が欲しい正確な細胞を得るために.この場合、配当利回り情報は第6行であり、インデックスは2から始まる1
. それは配当と収益を返しますSPLIT()
その情報.あなたはボブの記事をチェックアウトする場合は、常に彼の公式を更新する必要があることがわかりますGoogleファイナンスとヤフーファイナンスは、レイアウトを更新し続ける.また、
IMPORTXML()
ページがダイナミックであり、通常その情報を静的に利用できないので、ある時点で.マイソリューション
私は配当と収量のための他の情報源を見つけることを決めたdividend history . 良いのは、このソースはまた、GoogleとYahoo金融の場合ではないETFSの配当と収量情報を持っていることです.レイアウトがどれくらい頻繁に更新されるかについて、私はわかりません、しかし、それがどれくらい単純であるか、そして、それが一つの目的にどのように役立つかを与えられて、私はそれがあまりにしばしば更新されないと仮定します.
歩留り
=INDEX(SPLIT(IMPORTXML("https://dividendhistory.org/payout/"&IF($B2="NASDAQ", "", "TSX/")&$A2, "//p[contains(text(), 'Yield')]", "en_US"), ":%"), 1, 2)
私のユースケースでは、コラムAのティッカーシンボルとコラムBでの交換を続けるのが好きですpayout/TSX/<tickersymbol>
アメリカの株はpayout/<tickersymbol>
. 私も使用しないCONCATENATE()
そして、ちょうど使用を好む"<string>"&A1&"<string>"
.2番目の引数
IMPORTXML()
はxquery_path
.//p[contains(text(), 'Yield')]
ありがたいことのHTMLは基本的には非常に具体的なXMLアミライですか?とにかく、クエリを探す<p>
テキスト値'Yield'
タグの間に.Yield: 1.23%
そして、私は数Iが欲しいのでSPLIT()
で:
and %
そして、2番目の要素を取ります(シートで覚えているように、インデックスは1から始まります).配当金の払い戻し
=INDEX(IMPORTHTML("https://dividendhistory.org/payout/"&IF($B2="NASDAQ", "", "TSX/")&$A2, "table", 2, "us_EN"), 4, 3)
私が利用できるので、配当はより簡単ですIMPORTHTML()
を選択し、2
ページのND表.一部のティッカーがニュースやアナウンスを持っていないので、これは完璧ではありません
VGRO
:この場合、配当履歴テーブルは実際には
1
ページ上のSTテーブル.私たちは、Aを探しているので、私たちはリファレンスエラーで終わります2
NDテーブルが存在しません(境界切れ).#REF
この問題に対する私の最初の解決策は、おそらくすべてのETFまたはReturnでもありませんTYPE
投資と選択の1
or 2
したがって.これは誤った仮定であることがわかった.私の第二の解決策は
IMPORTHTML()
リクエストISERR(<request>)
次に、1
STテーブル.=IF(ISERR(G2),INDEX(IMPORTHTML("https://dividendhistory.org/payout/"&IF($B2="NASDAQ", "", "TSX/")&$A2, "table", 1, "us_EN"), 4, 3), G2)
これは、単一の値の2つの要求を作ることを意味するので、本当に非効率です.最初のリクエストを列に保存しましたG
そして"test "列と呼びます.とにかく、それは楽しい小さいウサギ穴でした、そして、私は個人的な金融を含むかもしれないか、持たないかもしれないシートの上でウェブスクレーピングのために多くの用途を見つけます!
参考文献
https://www.tawcan.com/using-google-spreadsheet-dividend-investment/#Even_Newer_Formula1
https://support.google.com/docs/answer/3093281?hl=en
https://www.w3schools.com/xml/xpath_syntax.asp
Reference
この問題について(グーグルシートにおけるウェブスクレーピング(パーソナルファイナンス)), 我々は、より多くの情報をここで見つけました https://dev.to/milktea02/webscraping-in-google-sheets-4jhmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol