質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

5回答

438閲覧

スクレイピングを学ぶ方法

KOO_

総合スコア58

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

1グッド

2クリップ

投稿2019/04/15 08:56

現在、Rubyでスクレイピングを学びたいと考えております。

インターネットサイトで検索するといくつかスクレイピングに関する記事が出てくるようですが、どれも1から学んだり、応用展開する事じゃ難しそうに感じます。

スクレイピングを勉強した事のある方、何か良いサイト例等はございますでしょうか?

よろしくお願い致します。

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

スクレイピングを学ぶ前に法律的な制限を学ぶことをオススメします。

入り口は以下で良いかと。
【スクレイピングと法律】スクレイピングって法律的に何がOKで何がOUTなのかを弁護士が解説。

スクレイピング入門サイトで明らかな利用規約違反のサンプルを提示している場合もあり、個人的には非常に問題だと思っています。
サイト管理者から見た場合、スクレイピング初心者(問題を起こす可能性の高い人)のアクセスを探し出すのは思っている以上に簡単です。
あまり話題になったことが無いですが、サイト管理者からプロバイダ経由で簡単に警告を行うことが出来ます。警告無視によるプロバイダ契約の解除まではそれほど難しいものではありません。

正しい法律知識とアクセスマナーがクローリングの最低限の下地になるので、スクレイピング以前の問題として、キチンと学んでください。

投稿2019/04/15 12:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

スクレイピングで何をしたいかによって、学ぶ内容も変わると思います。

私は仕事と趣味でいくつかのサイトをスクレイピングしていますが、その手法は年々変化しています。初期の頃は「とりあえず要件を満たせればなんでもいい」と思って自己流でやっていましたが、その後、「いくらなんでもDOMの分析くらいしないとな」という形でXPathなども使うようになりました。

私の作ったツールの一つに、「クレジットカード情報漏洩を素早く検知する」という目的のものがあります。これですと、以下のような要件で作ることができます。

  1. 情報源の見出しのページをHTTPでダウンロードする
  2. ダウンロードした中身に「流出」や「漏洩」などのキーワードがないか探す
  3. 新しい記事が見つかったことをメールなどで通知する

この中で、1はRubyでもPythonでも、いくらでも記事が見つかるでしょう。2は、ちゃんとやろうと思うと難易度が高いですが、探すだけであればいきなりの正規表現でもいいでしょう。3はメール送信ができればよいので、これも解説には困らないでしょう。

…といかにも簡単そうに書きましたが、実は難しいのは、「それが新しい記事なのか」という判定です。そうでないと、スクレイピングの度毎に同じ記事の通知が飛んでくることになりウザいです。そのためには、ファイルなりデータベースに、履歴を覚えておかなければなりません。その辺は、まぁ要件次第ですね。

先達の知恵に学ぶことはもちろん大切ですが、スクレイピングくらいであれば脆弱性が原因で外部から侵入されたりもしないでしょうから、「作りたいもの」を決めてチャレンジされてみてはどうでしょうか。そうでないと、学習の動機づけという点でも難しいと思います。そうして壁にぶつかれば、あらためてteratailでも質問してもよいし、その「知りたいこと」に適した書籍を教えてもらえば、勉強も捗るでしょう。

投稿2019/04/15 12:41

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

おすすめの書籍
・Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例
静的・動的なサイトをRubyでクロールする方法について学ぶことができる。
Rubyの構文について知っている必要がある。

・クローリングハック あらゆるWebサイトをクロールするための実践テクニック
Javaによるクローラーを例に、クローラーを作る際に必要になる知識について広く学べる。
Rubyでクローラーを作る際の情報も少し載っているが若干古め。

・Puppeteer入門 スクレイピング+Web操作自動処理プログラミング
JavaScriptによるクローラーの作成について、開発環境の構築から学べる。
拝読中。

おすすめのサイト
クローラ作成に必須!XPATHの記法まとめ
上の書籍だけではXPathの情報が足りないので。

投稿2019/04/15 12:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

個人的なオススメは以下となります。
導入から、各種コマンドについてまで わかりやすく記載されている為、
実装時にお世話になりました。ご参考までに
http://www.seleniumqref.com/

投稿2019/04/15 09:32

reraNine

総合スコア124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

今では高度なプログラミングのスキルが無くとも、ツールを導入することで、WEBスクレイピングは実施可能です。例えばOctoparseようなスクレイピングツールもたくさんありますね。

投稿2019/07/05 07:05

Yuki-Sakuraba

総合スコア163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問