15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サーバーサイドでウェブページを操作する上で使えそうな手段

Last updated at Posted at 2014-01-09
  • ウェブスクレイピング
  • ヘッドレスブラウザ

の二種類のやり方があるが、対象のページによってウェブスクレイピングで可能か、ヘッドレスブラウザが必要になってくるかは変わってくる

ウェブスクレイピング

HTTP でアクセスして自前で解析・ポストなどを行う。

  • Java なら Jsoup か HttpClient がお手軽そう
  • Ruby なら Mechanize が鉄板
  • PHP なら Simple HTML DOM Parser がお手軽そう

Java: XPath (XMLパースのみ)

Java: Apache Xalan (XMLパースのみ)

Java: Necohtml (HTML解析のみ)

Java: Jsoup

Java: HttpClient

Ruby: Nokogiri (HTML/XMLパースのみ)

Ruby: Mechanize

PHP: Simple HTML DOM Parser (HTMLパースのみ)

ヘッドレスブラウザ

Webkit の画面描画を仮想フレームバッファに出力することで画面描画をせずに動かせるウェブブラウザ。スクレイピングに対する利点は、JavaScriptなどで作られた動的なページに対しても操作ができる。

JavaScript: Phantomjs + Node.js

Phantomjs は JavaScript ベースのヘッドレスブラウザで一番歴史が長い。単体で使うと、Webkit 組み込みの JavaScript エンジンを使った実行となるのでサーバー要素はないため、Node.js とブリッジするライブラリを使って組み合わせるのが、今回の用途に合う

Ruby: Capybara-webkit or Poltergeist

Thoughtbot 社が開発している Ruby ベースのヘッドレスブラウザ。受け入れテストでよく使われるがこれも安定しているといえる。

Capybara-webkit と Poltergeist の二つのヘッドレスドライバがあるが、Poltergeistの方はPhantomjsベースな点やVfbに依存しないなどの点が違うらしい。

PHP: Alpaca-webkit + Capybara-webkit

Capybara-webkit を起動した上で、ソケット通信で無理矢理 PHP のライブラリからブラウザの制御を行うという仕組みのもの。個人が思いつきで作ったものっぽいので安定性などは不明。

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?