あるページを閲覧して上から順にクリックして、その先の抜き出したい情報を取得して、書き出しか表示できればと思っています。

言語としては、PHPがEXCLEVBAでやれたらと思っています。
何かヒントか何かあれば教えて下さい

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/03/19 22:10:05

ベストアンサー

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

そういうのをスクレイピングとか言ったりします。
以下使い回し回答と補足

PHP

元のURLのリストがファイルかデータベースかわかりませんが、その一覧から最初のページを生成します。
このあたりは普通のPHPのコードです。
この時、URLそのものとか、データベースならキーとかをリンクに埋め込み、次の処理に渡します。
これも一般的な方法ですね。
で、受け取ったURLを元にスクレイピングを行います。
http://www.php-seed.net/blog/archives/113
あと、ここで過去にあった質問ではsimple_html_dom.phpを使ってました。
http://q.hatena.ne.jp/1318845421#a1110970
http://smkn.xsrv.jp/blog/2010/02/php_simple_html_dom_parser/
http://tips.recatnap.info/simple_html_dom_parser_memo/
他にもくろふねさんのように正規表現でやった方が簡単な場合もあります。
どちらが簡単かは、場合や慣れによります。
このように情報を抜出し、あとは表示するかファイルやデータベースに書き出すかします。

VBA

VBAの場合は、UIにブラウザを使うと若干トリッキーになります。
UIをブラウザにする必要がなければ、普通にフォームを作ってボタンを配置するなりセレクタで選ぶなりして、URLを指定してやります。
この場合はPHPと似たような作りになると思います。正規表現でやる方法もあります。
http://q.hatena.ne.jp/1324686021#a1124403

UIをブラウザにする必要がある場合、まずは元のリストからHTMLを作ります。これは言語は違いますがPHPと似たようなものです。
出来上がったPHPは何処かにファイルとして保存し、それをIEで開きます。
以後、IEが開いたリンクを監視し、条件にあったら情報を抜き出してファイルやセルに書き出すことになります。
http://q.hatena.ne.jp/1319613629#a1113177
ただ、この方法はあまりドキュメントがないし、おそらく安定性も悪いと思いますので、ブラウザをUIにするならPHPの方が簡単でしょう。

最後に

どの方法を使うにしても、相手のHTMLの構造次第なので、トライ&エラーでやっていくしかないです。

他3件のコメントを見る
id:TransFreeBSD

動くのなら良いのじゃないでしょうか。
正規表現は、慣れていれば短くなって分かり易かったり修正し易かったりしますが、慣れてなければ余計に分かり難く修正し難くなります。
ですので、慣れている方法で行えば良いのではないでしょうか。

2012/03/14 23:29:52
id:koonii26

わかりました。いつもありがとうございます。

2012/03/22 11:12:34
  • id:jranar
    私の場合、PHPならfile_get_contentsでページの情報を取り出して、取り出したページ情報をpreg_matchでさらに情報を抜き出したりしてます。

    効率性を全く考えず、手っ取り早い手段でやったので、もっと効率いい方法があるのではないかと思います・・・

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません