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

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

新規登録して質問してみよう
ただいま回答率
85.49%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Q&A

解決済

3回答

1701閲覧

最適なスクレイピング学習方法を教えてください

coinbura

総合スコア106

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

0グッド

0クリップ

投稿2017/04/14 07:17

編集2017/04/14 07:46

許可をもらった複数サイト内の全コンテンツを対象に定期的にクロールしてソースを取得するクローラーを作ろうと思っています。(JavaScriptのリンクも読み取る仕様で)

最低でも100サイト✕1000ページくらいを巡回する事ができるようなものを作ろうと思うのですが、どのような言語?を学習すればよいでしょうか?

ネットで色々調べたところ、
VPS(さくらVPSが良さそう?)を契約して
python、Seleniumを覚えれば
なんとかなるのかな???って感じがしているのですが、まったくもって確証がもてません。

当方、HTML、CSS、PHP、Javascriptくらいしか分からず、サーバ周りも詳しくありません。

上記用途のような場合、どのような学習方法が最適でしょうか。
どの言語が良い。どのページが参考になる。どの本が良い等、何でも良いので情報を教えていただければ幸いです。
よろしくお願いいたしますm(_ _)m

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

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

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

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

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

guest

回答3

0

そこに記載されている情報はそれほど古いものではないと思います。pou

投稿2023/04/20 08:37

toyotamasculine

総合スコア20

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

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

0

ベストアンサー

言語でいうとRubyが良いかなと思います。
Ruby以外の言語のクローラー製作の経験がないため他言語との比較はできませんが、Rubyには問題なく使えるフレームワークが充分揃っているので、最終的に必要なクローラーが完成する道筋があると思います。
参考資料としてはRubyによるクローラー開発技法っていう赤い本が勉強になりました。まだ載っている情報はそれほど古くないと思います。

投稿2017/04/17 16:56

oskbt

総合スコア1895

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

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

coinbura

2017/04/18 17:57

貴重な情報ありがとうございます! amazonでタダ読みできるところまでその本を読んでみました。 またその後、本の作者様のサイトを見ていたのですが、 nokogiri(Ruby)  > BeautifulSoup(Python) Scrapy(Python) > anemone(Ruby) との事でした。 なので、フレームワークで作るならPython。ライブラリから作るならRubyなのかなぁと考えました。 この本の内容が、クローラーを勉強するのにかなり良さそうなので、Rubyを使いたいところですが、 Rubyは2012年に開発が止まっているanemoneしかフレームワークがない(?)ところがネックとなりそうですね。 RubyかPython、どちらにするか、というところまで絞れました! ありがとうございますm(_ _)m
退会済みユーザー

退会済みユーザー

2017/04/19 05:10 編集

Rubyならanemoneの他にcapybaraがありますよ。(クローラーのフレームワーク?ではないかもしれませんが。)
coinbura

2017/04/20 08:46

capybara、フレームワークではないようですが、JS実行には良さそうな感じしますね♪ ありがとうございます☆
guest

0

私は簡単なイラスト収集クローラしか作ったことがありません。
恐らくPythonだけだとJavaScriptが扱えないという理由で
Seleniumが必要なことになっているのだと私は思います。

言語はお好きなもので良いと思います。

サイト毎に専用のクローラを作ることになると思います。

Rubyならcapybara&PhantomJS
C#ならHtmlAgilityPack&ScrapySharpなどが考えられます。

参考
Rubyでスクレイピングしてみました。
C#のScrapySharpでスクレイピングする

投稿2017/04/14 08:37

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

coinbura

2017/04/17 03:16

「サイト毎に専用のクローラを作ることになる」のはなぜでしょうか? ソースを取得するのに、サイトごとで処理が違うということもないと思うのですが・・・
退会済みユーザー

退会済みユーザー

2017/07/09 22:13 編集

まず私がクローラ初心者だということを覚えておいてください。 (ついでにHTMLもJavaScriptも分かりません。) 私の言っていることを信じてはいけません。 今思えば、Rubyのmechanizeを使って linksでリンクを抜き出してeachで回すという クローラを作れば、サイト毎にクローラを用意する 必要が無いかもしれません。 質問に答えた当時の私は、サイトによって ソースコードが異なっているので (サイトの他のページの)urlの抜き出しや (JavaScriptを動かす)クリックの再現などで サイト毎にクローラに変更を加えないといけない のではと考えていました。
coinbura

2017/04/18 17:48

なるほど。「サイト毎に専用のクローラを作ることになる」となると、この試み自体無理かなぁと思ったので、不安になってちゃいました(^^A ご丁寧にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問