プロが教えるわが家の防犯対策術!

HPを閲覧している時に,その現在見ているページのURLを
プログラム上で取得したいのですが,何か方法はありますか??

クリックして,新しいページに行くごとに,
そのページのURLをプログラム上で取得して,利用したいのですが.

使用言語はC,C++,perlが好ましいですが,
この際,できるなら何の言語でもいいので教えてほしいです.

補足説明がほしい部分があれば,なんでも聞いてください.
ややこしいですがよろしくお願いします!

A 回答 (2件)

・現在ブラウザで開かれているページのURLを取得したい


・新しいページを開くたびに(URLを取得して)処理をしたい
・開くたびで無くても、開いたURLの一覧が得られればよい
このうちのどれがやりたいかで方向性は変わってくると思いますが
どれがやりたいことに近いですか?
何となく2番目が近そうな気はしましたが。
あと、取得したURLをどう利用したいのかもできれば知りたいです。


とりあえず、ぱっと思いついたのは、
ローカルプロキシを使う方法です。
やりたい処理を行うプロキシサーバを作成して
ブラウザにはそのプロキシ経由でWebアクセスさせます。
この方法だと基本的に言語やブラウザは何でも良いと思います。

ただし、この方法だと取得しようとしたファイルが
クリックしたリンク先URLのファイルなのか
そのファイルに付随して必要なファイル(例えばページ内の画像ファイル)なのかが
区別できないという問題があります。

例)
[HTTP proxy サーバを作ってみよう]
http://x68000.q-e-d.net/~68user/net/http-proxy.h …

このページにはperlによるHTTP proxyサーバが載っているのですが、
例えば130行目に

open(OUT, ">>log.txt");
if($new_req =~ /GET\s+(\S+)/ ){
print OUT "$host$1\n";
}
close(OUT);

こんな感じのコードを追加すればGETで要求されたアドレスがlog.txtに記録されます。



他の方法としては、
・ブラウザ依存の機能を利用して実現する(例: Firefoxの拡張)
・所望の機能を持ったブラウザを作る
などが思いつきます。
(前者はあまり詳しくないので実現方法については私は何ともいえません。
後者はそれこそ何でもできそうですがあまりに大変そうです。)


ブラウザで閲覧したURL履歴が得られればよいのであれば、
こういうFirefoxの拡張もありますが。
[Enhanced History Manager]
http://www.forest.impress.co.jp/article/2005/09/ …
    • good
    • 0
この回答へのお礼

お早い返信ありがとうございます!!!

私が一番実行したいのは
・新しいページを開くたびに(URLを取得して)処理をしたい
です.

取得したURLの利用方法ですが,
(1)取得したURLを元に,あるリストの中でURLを参照して,
そこの値をひっぱってきて利用したい
(2)現在いるページのURLをOpenGLの描画画面の中で表示させたい
などなどです.

学校でシステムを作っているので,
今回proxyサーバはやめておこうと思います.

それに対応したブラウザを作るのは少し無理があるので,それ以外の方法でとってくる事はできないかな?と思い,今回質問させていただきました.

Firefoxでそんな事ができるのは初めて知りました.
IEでの利用ができたら一番なのですが,無理だった場合,こちらの拡張を使って試してみたいと思います.

丁寧に答えていただき,本当にありがとうございました!

お礼日時:2007/01/20 12:45

対象とするブラウザがIEであれば、IWebBrowser2 インターフェースが強力です。


「現在見ているページのURLを取得したい」という要望に対しては手に余るかもしれませんが、
「利用したい」が発展すると、けっこう何でもできたりします。

利用の仕方等については、参考URLを載せておきます。

参考URL:http://www.nitoyon.com/vc/tips/ie_component.htm
    • good
    • 0
この回答へのお礼

お早い返信ありがとうございます!!!

参考URL拝見させていただきました.
まだソースプログラムを詳しくみていないのでわかりませんが,
これを利用したらできる気がします.

ブラウザはやはりIEで対応できると一番ありがたいです.
これを使って1度試してみたいと思います.
ありがとうございました!

お礼日時:2007/01/20 12:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!