Rubyによるクローラー開発技法 vol1 ~正規表現と配列の操作を学ぶ~
本のChapter1から進めます。
Chapter1のタイトルは「10分クローラーの作成」となっています。
いきなり、ワクワクさせるタイトルです。
まずは写経するところから。
本通りに作っていきます。
10分では作れませんでした笑。
というのもRubyの各種メソッドについて
理解していない所が多く、
このメソッド何だろうとか気になってしまって。
分からないところはその都度調べながら進めたので、
実際もっとかかってます。
ただ、本が難しくて時間がかかった訳ではないので
読むのは10分くらいで
スラスラ読めたと思います。
今回学んだ事
String#scan
var = "Ruby" p var.scan(/Ruby/) => ["Ruby"] p var.scan(%r!Ruby!) => ["Ruby"]
こんな感じで書きます。
通常、正規表現は/
と/
の間に書くと思いますが、
%r
と書いて、!
と!
の間に書く事も可能です。
%r
を使うと何が良いかというと、
/
の場合、正規表現の中に"/"が含まれると"/"を
エスケープする必要があるのですが、
%r
を使えばそういった事をしなくてよくなります。
特にHTMLを解析するときには"/"がよく出てくると思うので、
%r
の書き方の方が便利だと思われます。
ちなみに!
は、別の記号にする事も可能で、
%r*Ruby*
とか
%r|Ruby|
とか
%r{Ruby}
とか
色々できます。
Array#zip
配列と配列をくっつけるメソッド。
array1 = ["A", "B", "C"] array2 = ["1", "2", "3"] p array1.zip(array2) => [["A", "1"], ["B", "2"], ["C", "3"]]
こんな感じで、配列の要素(インデックス)が同じもの同士を
まとめてくれます。
Array#map
Array#collectの別名(メソッド名が違うだけで処理は同じ)。
collectメソッドは知ってたんですがmapメソッドは知りませんでした。
何で同じメソッドが2個もあるんですかね?
どっちでも良いと思うんですが、
どっちを使えば良いんでしょうかね。
私みたいな初心者はこういうとこで悩みます笑
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
- 作者: るびきち,佐々木拓郎
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/08/25
- メディア: 大型本
- この商品を含むブログ (8件) を見る