こんばんは。くまごろうです。
今回は受講が終わったPythonによるビジネスに役立つWebスクレイピング(BeautifulSoup、Selenium、Requests) の感想について紹介していきたいと思います。
はじめに
日本株のシステムトレードを行うためのデータベースの作成に向けて、Webスクレイピングの学習をしたいと思い、本コースを受講しました。
結論からいうと大満足で、
特に、
- 独自の情報収集ツールを開発したい
- 日々の情報収集を効率化したい
という投資家、トレーダーには有益な内容が盛りだくさんでした。
というのも、教材として使用されているWebサイトがReuters(ロイター)、Bloomberg(ブルームバーグ)、Yahoo!ファイナンスといった金融関連のWebサイトが豊富だからです。
その他にもPandasを活用してAppleの株価チャートを描画するレクチャーもあるので、投資家、トレーダーの方でこれからプログラミング学習を始める方は必見です。
また自身のログインID、パスワードを元にInstagramに自動でログインする方法も解説されているため、それを応用して、自身の利用している証券会社にログインし好みのデータを取得するなんてこともできます。
(※1)Webスクレイピング…Webサイトから情報を収集する技術のこと
コースの概要
学習内容 | ・スクレイピングの概要 ・スクレイピング用ライブラリの種類・役割 ・Jupyter Notebookの利用方法 ・HTMLの基本 ・newspaper3kの利用方法 ・Pandas・read_htmlの利用方法 ・Requestsの利用方法 ・BeautifulSoupの基本、応用的な利用方法、 ・XPathの基本と応用 ・Selenium、WebDriverの利用方法 ・CSSセレクタの基本 ・正規表現の利用方法 ・Selenium、BeautifulSoup、Requestsを組み合わせたスクレイピング |
再生時間 | 9.5時間 |
環境 | Mac、Windowsいずれも可 |
スキルレベル | すべてのレベル |
講師 | 清水 義孝 |
本コースは、Pythonを使ったスクレイピングに興味がある方向けのコースです。
AnacondaやJupyter Notebookといった開発を行うための環境構築から解説されているため、初学者の方でも問題なく受講することができます。
Selenium、BeautifulSoupといった情報収集に有用なライブラリの使い方はもちろん、より自由度の高いスクレイピングをするために必要なCSSセレクタやXpathの詳細な解説もあるため、このコース1つでスクレイピングでやりたいことのほとんどを学ぶことができます。
コースを受けてみた感想
まず、本コース全体として非常に良かった点が、講師の清水先生自らコーディングをしながらレクチャーを進めていくところです。
一般的な書籍やレクチャーでは、
- 完成形のプログラムが示され、その解説を行っていく
- あらかじめ作成したコードをコピーアンドペーストしてプログラムを完成させていく
のが主流ですが、本コースでは最初から最後まで清水先生が手を動かしながら解説してくれるため、プログラマーの思考回路を疑似体験することができます。
例えば、if文(分岐処理)やfor文(繰り返し処理)といったものが組み合わさった完成形のプログラムを見た場合、講師の方が丁寧に解説したとしても、しっかりと理解するのは一苦労です。
しかし、本コースでは清水先生が実際に手を動かしながら解説しているため、どういったプロセスを経てプログラムが完成していくかを実際に体験することができます。
また、プログラムを実行し処理は正常に終了したものの、何も結果が出力されず困った経験がある方は、自分を含め初学者の方は多いのではないでしょうか。
本コースでは、処理が想定通りに動作しなかった場合にエラーメッセージを出力するよう、try・except文とエラーフラグを使ったエラーメッセージの出力方法も解説してくれます。
このtry・except文のおかげで、どこのプログラムに不具合がありそうかを早期に発見することができるため、その後の修正作業の時間を大幅に削減することができます。
newspaper3k
さて、本題のレクチャーですが、ライブラリのnewspaper3kを使って、Reuters、Bloombergのホームページから、要約記事をスクレイピングすることから始まります。
この”要約”というのがポイントで、newspaper3kは自然言語処理により対象の記事を自動で要約してくれる機能が実装されているのです。
しかも、これらをたった数行のプログラムで実装できるというのが驚きです。
本レクチャーでは、要約した複数の記事を取得し、CSVファイルへ保存するまでの一連の流れを、一から丁寧に解説してくれるため、効率的に情報収集したい投資家、トレーダーは必見です。
Pandas・read_html
次にPandas・read_htmlのレクチャーですが、こちらは米国のYahoo FinanceのホームページからApple(AAPL)の株価データを取得し、株価チャートの描画、取得した株価データをCSVファイルに保存するまでの方法を解説してくれます。
また本レクチャーの最後に複数年の株価データを取得するコードも提示されているため、期間だけでなく、対象銘柄の範囲を拡張することで自分だけのデータベースの構築もできそうです。
なお、こちらで提示されているコードは、本コースの後半で習得するSeleniumの知識が必要なため、Seleniumのレクチャー受講後に活用することをオススメします。
Requests、BeautifulSoup
本レクチャーでは、Requestsを使って対象のホームページからデータを取得し、その後、BeautifulSoupで取得したデータから必要な情報を抽出する、といった一連の流れを習得します。
解説では読売新聞のホームページからニュースタイトルと各ニュースのURLをスクレイピング、演習ではYahooニュースのニュースタイトルや各ニュースのURL、本文のスクレイピングを実践していきます。
少し内容が難しくなってきますが、いずれも情報収集に有用なサイトが題材のため、しっかりと学習していきましょう。
Selenium、WebDriver
BeautifulSoupまでのレクチャーではHTMLを用いた静的なホームページからのスクレイピングが主でしたが、本レクチャーではJavaScriptを用いた動的なホームページからのスクレイピングを行うために必要なスキルを習得していきます。
最近では、ユーザーの利便性を高めるため、ページをスクロールしていかないと画像ファイルなどの情報が表示されないようJavaScriptを用いたホームページも増えてきています。
そういった場合には、WebDriverという機能を活用することで、人間がページをスクロールしているかのような振る舞いをさせることができます。
本レクチャーでは、このWebDriverを活用し、
- Instagramへのログイン
- アカウントの検索
- 検索したアカウントの画像ファイルをスクレイピング
- スクレイピングした画像を保存する
といった一連の流れを習得します。
このWebDriverというのは非常に便利で、画面上のボタンを押すのはもちろん、指定した文字(例えば、IDやパスワード)の入力、プルダウンの選択など、ウェブ上の大抵の操作を行うことができます。
また、オプションのヘッドレスモードを活用することで、ウェブブラウザを立ち上げずにスクレイピングが可能となるため、処理速度が大きく改善されます。
こちらもレクチャーの中で紹介されますので、ぜひ活用してみて下さい。
講師について
講師の清水 義孝先生は大手IT企業でのシステムエンジニアの経験に加え、その後は海外のビジネススクールでMBAを取得されており、現在は大手製造業でデータサイエンティストとして活躍されています。
現役で活躍されていることもあり、レクチャー内のコーディングは初心者の自分から見ても美しく、非常に勉強になります。
レクチャーはもちろんのこと、受講生とのQ&Aでのやりとりも非常に分かりやすく、受講生からの質問に対して、コーディング例を交えての丁寧な回答がよく見受けられるため、こちらも非常に勉強になります。
また、AI-interのPython3入門というブログを運営されており、
- Pythonを使うメリット
- Pythonを使うための環境の構築方法
- Pythonの基礎文法
など、これでもかという情報を無料で開放してくれています。
Pythonについて、ちょっとでも気になる方はぜひとも訪問してみてください。
おわりに
そもそもPythonの学習をしている理由は、株取引のための情報収集や効率的なスクリーニングを行うためですが、今回のレクチャーでやりたいことのほとんどは学べた気がします。
もちろん、データベースの構築から、ストラテジーの開発、検証など、やることはまだまだ沢山ありますが、自分の中では確かな手応えを感じています。
まずは、今回学んだpandasやスクレイピングの手法を用いて日本株のデータベースの構築を進めていきたいと思います。
進捗がありましたら、ブログで紹介していきますので、お楽しみに。
(参考)Udemyを使ってみての感想
書籍やブログ、またYouTubeなどを用いて独学をしている方や、これからPythonを含めプログラミング学習を始める方には、学習コストを大幅に削減するためにも【3日で学べる】PythonでWebスクレイピング・クローリングを極めよう!(Scrapy、Selenium編) の活用を強くオススメします。
以前の記事でも触れましたが、ここでは、参考として Udemy を使っての感想をお伝えします。
Udemy を使ってみての感想ですが、
- 演習が豊富なため、手を動かしながら学ぶことができる
- つまづきそうな箇所は過去のQ&Aの参照でほぼ解決できる
- 講師の説明速度を最大2倍速にしたり、字幕を出したりもできるため、効率良く学ぶことができる
といった形で、学習効率はかなり高かったです。
上でも触れましたが、特にQ&Aは非常に有用で、受講者からの質問に対しては講師の方が丁寧な回答をしており、大抵の疑問はここで解決できます。
Q&Aに何度助けられたことか…笑
これだけの内容で参考書1冊分程度(※2)のお値段だったため、ここ数年間の中で最もリターンの高い自己投資でした。
(※2)私が購入した時点のセール価格です。
ちなみに、 Udemy は定期的にセールをしており、セール期間中は90%オフなど破格の価格でコースを購入することができるため、受講を検討しているものについては、とりあえず「ほしいものリスト」に入れておくことを強くオススメします。
というのも「ほしいものリスト」に入れておけば、セールなどで割引になった際に通知が届くからです。
私自身も「ほしいものリスト」に入れていた【SQLiteで学ぶ】ゼロから始めるデータベースとSQL超入門 に80%以上の割引セールの通知が来たため、早速ポチっとしてしまいました。笑
こちらについても、またブログで紹介したいと思います。
コメント