Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@omokawa_yasu

スクレイピングツールの作成_5

今週は出向作業が忙しく、本番環境へアプリケーションをアップロードしてテストする、というのがまだ出来ていません。今日の夜にテストをしてみる予定ではありますが。。

今回の取り組みではデータ収集の高速化のみ対象としているので、本来のテストツールとしての使い方にそぐわないかと思っています。ですが、内部構造を知らないでチューニングも何もあったもんじゃありません。なので勉強を兼ねて書いてみようと思います。

考えている仕組みは、Selenium::Remote::Driver(以下S::R::D)でPhantomJSを操作してブラウジングを行い、遷移先のレンダリングされたHTMLソースからWeb::Scraper でデータを収集することです。

PhantomJS はヘッドレスドライバ(GUIを持たないブラウザみたいなもの)なので、外部プログラムからうまいこと操作してやればGUIを起動させずに自動ブラウジングが可能になります。そして今回外部プログラムに選んだのがS::R::D なわけです。

理由としては、単純にPerlでやりたかっただけです。以前ホームページにお問い合わせフォームを設置する関係でPerlを触ったとき、コードの芸術性や思想哲学に非常に共感できましたし何より書いていて気持ちよかったです。

少し話が外れますけど、自分は最初に入った会社でJavaの研修を受けてプログラミングに挫折した人間なので、書いていて楽しいPerlでやりたいというのが本音です。

さて、PhantomJSは確かにGUIも無いので描画の分だけ高速化できます。でも、データを取りたいサイトがAjaxを多用していたりするとページの読み込みが完了するまで待つ必要が出てきます。これが意外と痛かったりする。

欲しいデータが100あったとして10取るのにページ遷移あたり5秒かかるなら、50秒。

こんなサービス使いたいわけないですよね?(笑)

それじゃあどうしよう、というのが今の課題です。

ともあれ、下記のブログを見ながら色々勉強中です。
http://www.ivaturi.org/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?