Railsを新しくnewしたあとにrspecをインストールして設定などを書き換え、rspecが実際に動くところまでをやってみたいと思います。
Rails5.2になってから少し手順が増えていたりするので参考にしていただければ幸いです。
Continue reading “Rails5.2をrails newしてrspecを導入するまで”
カテゴリー: Ruby
RubyとNokogiriを使ってHTML解析・スクレイピングをしよう
この記事ではRubyのgemであるNokogiriを使ってHTML解析やスクレイピングをしてみようと思います。
Nokogiriのインストール
まずはNokogiriをインストールします。
$ gem install nokogiri
これでインストール完了です。
それでは実際に使っていきましょう。
簡単なHTMLでNokogiriを試してみる
まずは簡単なHTMLでどのようにNokogiriを使うのか試してみましょう。
require 'nokogiri' # HTMLを解析する場合 html = Nokogiri::HTML("<html><body><h1>Hello Nokogiri</h1><p><a href='https://example.com'>How to parse HTML</a></p></body></html>") html.at_css("h1").text # => "Hello Nokogiri" html.css("p").first.text # => "How to parse HTML" html.css("p a").attribute('href').value # => "https://example.com"
上記のコードのように、at_css
を使うとHTML文章の中から1番最初に出てくる要素をCSSの形式で検索することが出来ます。
また、css
を使うとHTML文章内から複数要素を取得することが出来ます。
属性を取得するためにはattribute
を使います。属性の中身を取得したいときはvalue
を使うと取得出来ます。
HTML文章の検索の方法は、xpath形式
とcss形式
があるのですが、ウェブ制作者などであればいつも使い慣れているcss形式がよいでしょう。
実際にGoogleのサイトからロゴのパスを取得してみましょう。
実際に解析してみる
それでは実際に解析してみましょう。
ウェブサイトの解析をする場合はhttpなどからデータを取得する必要があるので、open-uri
を使用しています。
require 'open-uri' require 'nokogiri' url = 'https://www.google.com/' charset = nil html = open(url) do |h| charset = h.charset h.read end doc = Nokogiri::HTML.parse(html, nil, charset) puts doc.at_css("#hplogo").attribute('src').value # => /logos/doodles/2018/world-cup-2018-day-11-5692104616443904-5688737870643200-ssw.png
参考リンク
RubyでHTTPメソッド(GETやPOSTなど)を送る方法
Rubyでプログラムを書くときにGETやPOSTなどのHTTPメソッドを送りたいときがあるかと思います。そのようなときに便利なのが標準ライブラリのnet/http
です。今回はこのライブラリを使ってGET, POST, PATCH, PUT, DELETEメソッドを送るにはどうしたらよいのかを記述します。
Continue reading “RubyでHTTPメソッド(GETやPOSTなど)を送る方法”
Rubyでファイルの先頭や後ろに追記する方法
Rubyでプログラムを書くとき、しっかり運営していくものであればデータベースを使ったほうがいいですが、簡易的なシステムを組んだり一度組んだら捨ててしまうような場合のときにデータベースを使うのは少し面倒なときがあります。そんなときにファイルを簡易的なデータベースとして使うこともありますが、今回はそのようなときに使えるファイルの先頭や後ろに追記する方法を学びます。
Continue reading “Rubyでファイルの先頭や後ろに追記する方法”
RubyのDateTimeにタイムゾーンを指定する
時刻を扱うのはどの言語でも大変です。今回私がプログラムを書いていく中で時差に悩まされたのですが、そのときに少しでも知っておけば楽だったなぁということについて書いていこうと思います。
Continue reading “RubyのDateTimeにタイムゾーンを指定する”
Rubyでインターネット上の画像をローカルに保存するためには
RubyはRuby on Railsなどを用いてWebアプリケーションを作るのにも優れていますが、簡単なタスクをさくっとプログラムするのにも向いています。今回はRubyを用いてローカルに画像を保存するためにはどうしたらよいか学んでいきましょう。
Continue reading “Rubyでインターネット上の画像をローカルに保存するためには”
RubyでAddressable gemを使ってURIの取り扱いを楽にしよう
RubyでURIを処理したいときは標準ライブラリのURIを使うことが多いですが、Addressable gemを使うことでより完結にわかりやすくコードを書くことが出来ることもあります。今回はそんなAddressable gemの使い方を学んでいきましょう。
インストール
Addressableはgemなのでインストールが必要です。コマンドラインからaddressable
をインストールしましょう。
$ gem install addressable
Adressable::URIの使い方
使用前にはrequireが必要です。そこに注意しましょう。
例えば以下のようにURIをparseすることが出来ます。
require 'addressable/uri' uri = Addressable::URI.parse("https://www.example.com/path/to/end.html?test=1&test2=2") uri.scheme # => "https" uri.host # => "www.example.com" uri.path # => "/path/to/end.html" # 拡張子があれば拡張子だけ抜き出すことが出来る uri.extname # => ".html" uri.query_values # => {"test"=>"1", "test2"=>"2"}
個人的に嬉しいポイントとしてはqueryをHash形式で操作することが出来るところです。
例えばURIのqueryを追加・削除したいとき
query_values
に代入も出来るのでここにHashを追加・削除してあげることであらたにqueryを追加・削除することが出来ます。簡単。幸せ。
require 'addressable/uri' uri = Addressable::URI.parse("https://www.example.com/path/to/end.html?test=1&test2=2") # queryを追加する queries = uri.query_values queries["test3"] = 3 uri.query_values = queries uri.to_s # => "https://www.example.com/path/to/end.html?test=1&test2=2&test3=3" # queryを削除する queries.delete("test2") uri.query_values = queries uri.to_s # => "https://www.example.com/path/to/end.html?test=1&test3=3"
例えばURIのqueryを全削除したいとき
Hashをnilにしてあげればqueryを全削除することが出来ます。幸せ。
require 'addressable/uri' uri = Addressable::URI.parse("https://www.example.com/path/to/end.html?test=1&test2=2") # query_valuesにnilを追加するとqueryを全削除する uri.query_values = nil uri.to_s # => "https://www.example.com/path/to/end.html"
まとめ
Rubyの強みはコミュニティの強さ・gemの豊富さだと思います。なので使えるものは使って速く実装出来るときは使えばよいかと思います。
またこれらの機能を自分ならどう実装するかを考えてみるのもプログラミング能力向上によいトレーニングかと思いますのでぜひ考えてみてください。
【Ruby on Rails入門編】 macOS SierraにRailsをインストールしてみよう!
こんにちは!
Ruby on Railsをいざ始めよう!と思ったとき、まずどのように動かしていいかわからない方も多いと思います。
この記事では、何もインストールされていないmac OS SierraにRailsをインストールする方法をご紹介します。
大まかな流れとしては、
- コマンドラインツールのインストール
- Homebrewのインストール(Git, readline, openssl等)
- Rubyのインストール
- Ruby on Railsのインストール
という手順で完了します。
Continue reading “【Ruby on Rails入門編】 macOS SierraにRailsをインストールしてみよう!”
Rails初心者にオススメのテキストエディタはこれ!厳選エディタ4選
みなさんこんにちは!
これからプログラミングを始めようとしている方やRuby on Railsなどを始めようとしているプログラミング初心者の方がよく困りがちなのが、どのテキストエディタを使えばよいのか、ということです。
この記事では、そんなあなたにピッタリのテキストエディタを厳選してご紹介いたします!
Continue reading “Rails初心者にオススメのテキストエディタはこれ!厳選エディタ4選”