• ベストアンサー

自動的にコピペしたい

ご質問させて頂きます。 以下のようなWEB画面があります。 ------------------------ 前へボタン   次へボタン データ ・ ・ ・ ------------------------ ボタンやデータの位置は一定です。 コマンドボタンをクリックすると 自動的に 1.データをコピーして 2.そのデータをファイルにペーストして 3.次へボタンをクリックして次の画面に移動する という処理を繰り返したいのですが そういうことは出来ますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

そういえばここはPerlのカテゴリーでしたね。 > サーバーにアップロードしたHTMLの > 一部のデータを(範囲を指定して) > メモ帳などのファイルにコピーしたいんです。 ブラウザでこれを実現しようと言うならJScript+ActiveXObjectかWSHなら出来るかも。 またはActiveXや専用アプリケーションを作成するなら、C/C++、VBやその他の言語(作成に使用する言語のカテゴリー)で質問された方が良いかもです。 PerlならLWPを使って各ページへアクセスして、 その内容を順次保存すればいいのではないでしょうか。 index.cgi?page=1 index.cgi?page=2 ・・・ index.cgi?page=9 を取得するとして、 use LWP::Simple; $url='http://www.example.com/index.cgi?page='; $file='alldata.txt'; open(FP, ">$file") or die('file open error'); for(1..9){ $content=get($url.$_); print FP $content if($content); } close FP; 正規表現などでたとえば<div id="content">から</div>の間だけを保存するとか、 タグを除去するなどの処理をすれば、必要な部分だけをプレーンテキストとして保存出来ると思います。

すると、全ての回答が全文表示されます。

その他の回答 (6)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.7

よくCreateObject("InternetExplorer.Application") からIEのActiveXオブジェクトを使ってブラウザの操作をしますが、 Perl の場合 Win32::OLE モジュールを使って my $IE = Win32::OLE->new("InternetExplorer.Application"); から同様のことができます。 とりだすデータによっては、 WWW::Mechanize モジュールを使ってブラウザでの操作を実現できます。

すると、全ての回答が全文表示されます。
noname#201565
noname#201565
回答No.5

「次へ」ボタンを押すという作業を手動でして、その状態をパケットキャプチャします。 そして、それと同じパケットをPOSTするようにしたらどうですか? 以前、adslが不調でモデム(ルータ)を定期的に再起動させたい時に作ったもの(parl)です。 192.168.1.1はadslルータのアドレス。再起動するというボタンを押した際の挙動を再現しただけの手抜きです。 まったく目的は違いますが、WEB画面のボタン押したいわけですからやりたいことは同じようなものですよね? 後はキャプチャですが、全て自動化しようとなさらずに、接続時にキャッシュを取るようにして、キャッシュをあさればよろしいのでは。 use strict; use Socket; # 接続先IP my $host = 192.168.1.1 ; my $port = getservbyname('http', 'tcp'); my $sock_addr = pack_sockaddr_in($port, $host); socket(SOCKET, PF_INET, SOCK_STREAM, 0) or die "ソケットの作成に失敗しました。\n"; connect(SOCKET, $sock_addr) or die "接続に失敗しました。。\n"; # ファイルハンドル SOCKET をバッファリングしないように。 select(SOCKET); $|=1; select(STDOUT); # モデムに 再起動リクエスト print SOCKET "POST /cgi-bin/main.cgi HTTP/1.1\r Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword,\r Referer: http://192.168.1.1/cgi-bin/main.cgi?mbg_webname=reboot\r Accept-Language: ja\r User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r Content-Type: application/x-www-form-urlencoded\r Accept-Encoding: gzip, deflate\r Host: 192.168.1.1\r Content-Length: 55\r Connection: Keep-Alive\r Cache-Control: no-Cache-Control\r Authorization: Basic dXNlcjp1c2Vy\r \r mbg_webname=reboot_result&mbg_reboot=%BA%C6%B5%AF%C6%B0\r\n"

すると、全ての回答が全文表示されます。
  • s_k_y_jp
  • ベストアンサー率50% (1/2)
回答No.4

詳細がわからないので、なんとも言えませんが、 500件ものデータを取得したいのであれば、 そのサイトの運営者に連絡を取り、 データをもらった方が手間も少なく、 早いと思われるのですが、いかがでしょうか?

kawa214
質問者

お礼

ご返事有り難うございました。 こちらの方法も難しいそうです。

すると、全ての回答が全文表示されます。
回答No.3

> サーバーにアップロードしたHTMLの > 一部のデータを(範囲を指定して) > メモ帳などのファイルにコピーしたいんです。 この作業はつまりテキストファイルとして保存したいんですよね? セオリーでいけばサーバー上でテキストファイルに保存して、それをダウンロードするわけですが、 それではダメなのでしょうか?

kawa214
質問者

補足

ご返事有り難うございました。 >セオリーでいけばサーバー上でテキストファイルに保存して、それをダウンロードするわけですが、 >それではダメなのでしょうか? それが出来れば良いんでしょうけど サーバーをいじることが出来ないので それは難しそうです

すると、全ての回答が全文表示されます。
noname#25358
noname#25358
回答No.2

 補足見ました。  残念ですが、通常の手段では非常に難しいと言わざるをえません。  サーバー上にある物を全自動でローカルに持ってこれちゃったら、セキュリティ的に非常にマズいので、仮に方法があったとしてもここでは教えられないのです。  あるいは、ウィンドウズ上で、マウスやキーボードの操作を自動化するフリーソフトがあります。「ヤフー!コンピュータ」などに公開されています。  確実な方法ではありませんが、それを使えば何とかなるかもしれません。

すると、全ての回答が全文表示されます。
noname#25358
noname#25358
回答No.1

 下記の3点、補足してください。 1.ここではペーストとは何を指しますか?  通常、ペースト(貼り付け)とは、「Ctrl+V」キーを押すなどして、クリップボード経由で手動で行う操作のことを言います。  自動処理中に行う操作のことをペーストとはあまり言わないので、ここでは何のことを指しているのかを教えてください。 2.WEB画面とは何を指しますか?  単にローカル保存されたHTMLを指すだけでしょうか?  それとも、どこかのサーバーにアップロードしたHTMLを指しますか? 3.根本的には何がしたいのですか?  よろしくお願いします。

kawa214
質問者

補足

ご返事有り難うございました。 説明不足で申し訳ありませんでした。 ご質問の件ですが…。 >1.ここではペーストとは何を指しますか? サーバーにアップロードしたHTMLの 一部のデータを(範囲を指定して) メモ帳などのファイルにコピーしたいんです。 >2.WEB画面とは何を指しますか? > それとも、どこかのサーバーにアップロードしたHTMLを指しますか? ハイ、そうです。 >3.根本的には何がしたいのですか? 1で説明したとおりなんですが 500件以上のデータ(画面)があるために 質問欄で書いたような処理を 手作業でするのは大変なので 自動化できればいいと思っています。

すると、全ての回答が全文表示されます。

関連するQ&A