スクレイピング(inner_textメソッド)
復習がてらアウトプットしてみます^^
スクレイピングとは、ウェブサイト上のHTMLからある特定のデータを抜き出す処理のことで、外部のサーバーからデータを抽出し、集計をしたりするときに役立つそうです。
Mecanizeというスクレイピングを行うためのgemが必要になります。
手順
- Mechanizeクラスのインスタンスを生成する
- Mechanizeクラスのインスタンスメソッドget(情報を取得したいウェブサイトのURL)で、ウェブサイトのHTML情報を取得する
- 欲しいデータのあるタグ要素をsearchメソッドで指定して取得する
- 取得したタグ要素のHTML情報にたいしてinner_textメソッド、またはget_attributeメソッドを使って欲しい値を取得する
実際にinner_textメソッドでamazonnからaタグを抜き出してみます。
サイトのHTMLは、option+command+Uで確認できます。
下記のファイルはsample.rbで、ターミナルから$ruby sample.rbでファイルを実行します。
amazonのトップページのaタグをスクレイピングしてみます、、
このようにaタグだけ引っ張れました。
次にもうちょい細かいスクレイピングをしたいと思います。
例えばあいみょんを検索した時のこのページ
アルバムのタイトルだけ抜いてみます。
検証かけるとこんな感じで出てきます。「真夏の夜の匂いがする」はaタグの中のspan
タグです。
こんな感じで抜けました
もうちょっと綺麗に取得したいので、別サイトで試してみます。笑
rockinonのサイトでやってみます。
検証するとc-article-middleクラスのdivタグですね
cssを当てる時と同じように .c-article-middleと書き、divタグでsearchメソッドの指定の追加を行います。
こんな感じで抜けました
さっきより綺麗に取得できました。
次の投稿でget_attributeメソッドに関してアウトプットします.