カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

0-1

ニュース系サイトのスクレイピングコマンドを作ろう【Ruby】

ニュース系サイトのスクレイピングコマンドを作ろう【Ruby】

Rubyを使ってニュースサイトのスクレイピングを行います。
プログラム開発の中で、プログラムを書いては直すを繰り返し、少しずつ作っていく流れを体験することができます。
初めは拙いコードでも少しずつ良くしていくことできれいなプログラムになっていきます。

学習内容

この教材を通して以下のことを体験し学ぶことができます。

  • ベーシックなRubyプログラミングを行います。
  • Webスクレイピングの方法を学びます。
  • コマンドラインプログラムの開発の流れを体験します。
  • Rubyプログラムのリファクタリングを行います。

受講における必要条件

  • Rubyの基礎文法を理解している
  • ターミナルでRubyプログラムを実行できる
  • HTMLのマークアップを読み解ける

Rubyの基礎文法の理解が必要です。クラスやメソッドの定義方法やブロックの書き方の理解が必要です。
ターミナルソフトウェアからコマンドを使ってRubyプログラムを実行します。またコマンド操作もありますのでターミナルソフトウェアに慣れておいてください。
Webスクレイピングを行うため対象サイトのHTMLを読み解きDOMへの理解が必要になります。

この教材の対象者

Rubyの入門書を読み終わって

  • 次何をしようかなと考えている方
  • 実践的なプログラミングをやってみたいと考えている方

におすすめです。

学ばないこと

Rubyでの開発の流れを体験することを一番の目的としていますので、HTMLやXPathの詳しい解説は行っていません。
また、テストコードは作成しません。

本教材の対応バージョン

筆者はMacを利用しており ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18] のバージョンでの動作確認をしております。
下位のバージョンでも動作する場合もありますが、2.4系以上での利用を推奨します。
2.3以下はサポートが終了しており、2.4 系列のサポート終了は2020年3月31日の予定となっています。

作成するアプリケーションのイメージをつかもう

TODO

作成するアプリケーションのリンクや動画があれば追加してください。(執筆の最後でも構いません。)

目次

0章 はじめに

  • 0-1 教材の概要
  • 0-2 開発環境のセットアップ
  • 0-3 スクレイピングとは
  • 0-4 (付録) Homebrewを使ったRubyのインストール
  • 0-5 (付録) Cloud9を利用する手順
  • 0-6 (付録) Visual Studio Codeの導入方法

1章 スクレイピングの準備

  • 1-1 取得したい情報を整理する
  • 1-2 HTMLの構造を読み解く
  • 1-3 データ構造を設計する

2章 対象サイトのHTMLを取得する

  • 2-1 net/http標準ライブラリを使う
  • 2-2 取得したHTMLをファイルに保存する
  • 2-3 リファクタリング

3章 スクレイピングする

  • 3−1 RubyGemsの利用
  • 3-2 Nokogiriのインストール
  • 3-3 XPathを使ったスクレイピング
  • 3-4 リファクタリング

4章 コマンドライン設計

  • 4-1 オプションによる振る舞いの制御
  • 4-2 optparse標準ライブラリを使う
  • 4-3 オプションの実装

5章 オブジェクト指向

  • 5-1 クラスを設計する
  • 5-2 クラスを実装する
  • 5-3 リファクタリング
  • 5-4 ソースファイルを分割する

6章 定期実行する

  • 6-1 launchd を使う
  • 6-2 Automator を使う