
ローカルの(WindowsXP)環境で、アクティブなエクスプローラのウィンドウから URL や HTML を、 Perl (ActivePerl) でそのプログラム中に取り込むにはどのようにしたらよいのでしょうか。LWP, Win32::OLE などウェブで調べてみましたがわかりませんでした。ご教示いただけたら嬉しいです。
調べた限りでは Win32::OLE で以下のように出来そうだったのですがうまく行きませんでした。
use Win32::OLE qw(EVENTS in with valof);
my $IE = Win32::OLE->GetActiveObject('InternetExplorer.Application')
|| Win32::OLE->new('InternetExplorer.Application', 'Quit');
$url = $IE->{Document}->{Url};
print "URL: " . $url . "\n";
No.3ベストアンサー
- 回答日時:
>Explorer に表示された検索結果から自分のほしい部分だけを抽出・整形し、Word file などに保存できたらいいなと
特別にPerlを使わなくてはならないという理由がないなら、
javascript(JScript)を使うといいと思います。
http://support.microsoft.com/default.aspx?scid=k …
に書かれている方法で、右クリックメニューを拡張することができます。
なので、
現在開かれているWebページを右クリックして該当プログラム(ローカルに作ったHTMLファイル)で
現在開かれているWebページの全てのリンクを取り出し、クリップボードに送り込むことが可能です。
サンプル(リンクの一覧をクリップボードにコピー)LinkAllCopy.html
<SCRIPT LANGUAGE="JavaScript">
var pWin = external.menuArguments;
var pDoc = pWin.document;
var LinkList="";
for(var i=0;i<pDoc.links.length;i++){
LinkList+='<a href="' + pDoc.links[i].href + '">';
LinkList+=pDoc.links[i].innerText;
LinkList+="</a>\n";
}
window.clipboardData.setData('text',LinkList);
</SCRIPT>
-------------------------------------------------------------------
取り出したリンクをスクリプトで選別処理することも当然可能です。
ActiveScriptを使っているのであれば、SCRIPT LANGUAGE="PerlScript"を使うことも可能であると思いますが、
特にこだわりがなければ、JScriptでできると思います。
BLUEPIXY さん、ありがとうございます!Perl に特にこだわっていたわけではなく、ご教示いただいたようにしてリンクの情報を取り出すことが出来るようになり大変助かりました!!
もうひとつだけ・・
HTML の全情報を取り出す Javascript のソースをお教えいただけたらとてもうれしいです。
No.4
- 回答日時:
>HTML の全情報を取り出す Javascript のソースをお教えいただけたらとてもうれしいです。
もうひとつ意味がわからないんですが、
文字通りの意味なら、「ソースの表示」でソースを取り出せばいいような気がします。
画面上に表示されるエレメントについては(IEの場合)
docuement.ALL
から引っ張ることができます。
body部分のソースは
document.body.innerHTML
とかでとれます。
ご親切にお教えいただき本当にありがとうございました。自分でも調べてみて以下のように(ご回答のとおりですが)クリップボードに URL や Text, HTML を移すことが出来ました。
<SCRIPT LANGUAGE="JavaScript">
var pWin = external.menuArguments;
var pDoc = pWin.document;
var pBody = pDoc.body;
var Url = pDoc.URL;
var InnerHtml = pBody.innerHTML;
var InnerText = pBody.innerText;
window.clipboardData.setData('text',Url+InnerText+InnerHtml);
</SCRIPT>
これと Win32::Clipboard で思ったとおり(以上)のことができると思います。
use Win32::Clipboard;
$CLIP = Win32::Clipboard();
print "Clipboard contains: ", $CLIP->Get(), "\n";
重ね重ねご親切に感謝いたします。
No.2
- 回答日時:
多分、GetActiveObject('InternetExplorer.Application')
で現在開いているIEが捕まえられていないと思う。
my $IE = Win32::OLE->GetActiveObject('InternetExplorer.Application')
|| Win32::OLE->new('InternetExplorer.Application', 'Quit');
$url = $IE->{Document}->{Url};
print "URL: " . $url . "\n";
を
my $IE = Win32::OLE->GetActiveObject('InternetExplorer.Application');
if($IE){
$url = $IE->{Document}->{Url};
print "URL: " . $url . "\n";
}
の様にしてみて何も表示されなかったら、捕まえるのに失敗しているということでしょう。
ハッシュが表示されていたのは、newしている方のせいだと思う。
単純にnewしてURLを開いたら良いんじゃないでしょうか
この回答への補足
XP SP2 にあてられた security patch がじゃまをしているようです・・解除をトライしましたがだめでした。
マニュアルでソースをコピペするしかないのかな・・・
まったくおっしゃられるとおりで、IE を捕まえられていませんでした。IE のバージョン (6.0....) のせいなのでしょうか。IE 設定はいろいろ変えてみましたが今のところだめでした。
>単純にnewしてURLを開いたら良いんじゃないでしょうか
.pl ファイルをダブルクリックするだけで Explorer に表示された検索結果から自分のほしい部分だけを抽出・整形し、Word file などに保存できたらいいなと思っています。
No.1
- 回答日時:
どんな風にだめだったのですか?
このスクリプトをコピー・ペーストして以下のように出力されましたが・・・
D:>ActiveURL.pl
URL: http://bicniws.okweb.jp/kotaeru.php3?q=1696768
この回答への補足
返信有難うございます。
C:\>ActiveURL.pl
URL:
というように、何も返ってこないんです・・
スクリプト自体の問題ではないということですね・・
補足と質問の追加です。スクリプトを以下のようにすると、
C:\>ActiveURL.pl
Doc: HASH(0x284f50)
URL:
というのが返ってきます。ですので、Explorer にアクセスは出来ているようです。ところで、HASH(0x284f50) は展開すると HTML 情報が得られるのでしょうか。そうである場合、どのように展開したらよいのでしょうか。ご教示のほどお願いいたします。
use Win32::OLE qw(EVENTS in with valof);
my $IE = Win32::OLE->GetActiveObject('InternetExplorer.Application')
|| Win32::OLE->new('InternetExplorer.Application', 'Quit');
$doc = $IE->{Document};
$url = $doc->{Url};
print "Doc: " . $doc . "\n";
print "URL: " . $url . "\n";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(プログラミング・Web制作) pythonのWebスクレイピングでfind_allだとurlがNoneに 4 2022/04/17 18:21
- C言語・C++・C# ExcelCS 1 2023/01/27 19:47
- その他(OS) エクスプローラのアクティブウィンドウのタイトルバーに色がつかない 3 2023/07/18 18:34
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Chrome(クローム) インターネットショートカットをダブルクリックしてもWebページが開けなくなりました 2 2022/04/01 15:28
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソースの追加行数と変更行数
-
VBAで#Regionに変わるものは無...
-
【VC++6.0(MFC)】Access Violat...
-
C/C++ をHTML変換するツールを...
-
文字化けについて
-
ListBoxの最大表示項目数について
-
VB詳しい方
-
ARPツール
-
実行オブジェクトからソースを...
-
画像と文字が重なって表示される。
-
google Map APIの使い方
-
ソースを表示させない方法はあ...
-
VisualBasicがインストールされ...
-
「MicrosoftVisualBasic6.0 行...
-
プログラム時のヘッダコメント...
-
レストラン、英語のメニュー表記
-
プログラムについて
-
マクロのソースの非表示
-
JSPの実行結果をHTMLに変換
-
staticな関数をテストする方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ソースの追加行数と変更行数
-
#ifdef多用でソースが見づらい
-
Dreamweaverのコードカラーが黒...
-
VBAで#Regionに変わるものは無...
-
レストラン、英語のメニュー表記
-
Visual Source Safe?
-
VisualStudio2010でデバッグソ...
-
プログラム時のヘッダコメント...
-
JSPの実行結果をHTMLに変換
-
【VB.NET】WebページのDOMソー...
-
C/C++ をHTML変換するツールを...
-
マウスポインタが手の形になら...
-
実行オブジェクトからソースを...
-
画像と文字が重なって表示される。
-
文字化けについて
-
staticな関数をテストする方法...
-
htmlのタブの色変更について
-
VisualBasicがインストールされ...
-
VBAでhtmlソースから特定の文字...
-
【VC+ 2005】CStringは使えない...
おすすめ情報