![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Perl初学者です。Perlでのインターネット通信に興味があります。
webサイトのテキストボックスにテキストを入力し、それを送信・結果を取得するためのプログラムを教えてください!
(例)
単語を英訳するプログラムが作りたかったので、”http://ejje.weblio.jp/”の検索ボックスに単語を入れて送信し、帰ってきたURLのhtmlを取得する、といった感じ?
少し勉強したLWPモジュールを使って頂けると嬉しいです。
もちろん、こっちの方が効率がいいよ、といった方法があれば是非教えてください!
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
適当。
表示がくずれるので、空白2文字を全角空白にしていることに注意。#!/usr/bin/perl -T
use strict;
use warnings;
use utf8;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;
use Encode;
use LWP::UserAgent;
use HTTP::Response;
use HTML::TreeBuilder;
use constant URL => q{http://ejje.weblio.jp/content};
my $q = CGI->new();
my $word = $q->param("word");
my $mean = q{};
if ( defined $word ) {
my $ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0');
$ua->timeout(10);
my $url = URL . '/' . $word;
my $req = HTTP::Request->new( GET => $url );
my $res = $ua->request($req);
if ( $res->is_success ) {
my $tree = HTML::TreeBuilder->new;
$tree->parse( decode( 'utf8', $res->content ) );
my ($attr) = $tree->look_down( 'class', 'Kejje' );
$mean = $attr->as_HTML;
}
else {
$mean = $res->error_as_HTML;
}
}
else {
$word = '';
}
my $body = do { local $/; <DATA> };
$body =~ s/%%word%%/$word/;
$body =~ s/%%mean%%/$mean/;
binmode STDOUT, ':encoding(utf8)';
print $q->header( -charset => 'UTF-8' ),
$q->start_html( -title => "test", -lang => 'ja', ),
$body,
$q->end_html;
__DATA__
<form method="get">
Word : <input type="text" name="word" /><br/>
<input type = "submit" />
</form>
<hr>
Word : <br>
%%word%%
<br>
Mean : <br>
%%mean%%
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- JavaScript HTMLでJavaScriptを使用してプログラムを作ります。 入力されたパスワードを取得して、パス 2 2022/10/18 01:05
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- HTML・CSS 検索窓とcssハックについて 3 2022/04/22 12:21
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(コンピューター・テクノロジー) 「プロトコル」の定義について 5 2023/04/16 13:13
- Visual Basic(VBA) VBA Twitter 高度な検索 日付 単語 リンクをOutlook で送信 2 2022/06/18 18:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VHDLについてですが何がお...
-
Perl LWPでのIPv6エラー
-
条件分岐によってuseやrequire...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 『Call』で呼び出す...
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
VBAでoutlook365が起動しません。
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
ユーザーフォームに最小化・最...
-
VBでグローバル変数を宣言するには
-
'Range'メソッドは失敗しました
-
Excel VBAで、ユーザーフォーム...
-
サブルーチンを認識しません。
-
エクセルVBAでシートモジュール...
-
Excelシート内セル記述の違いに...
-
perl起動方法
-
【vba】フォームに書いてあ...
-
Excel VBA 定義されたプロージ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlでgoogle newsのRSSを取得2
-
Web::Scraperの使い方で
-
mechanizeのタイムアウト処理に...
-
VHDLについてですが何がお...
-
PerlのWeb::Scraperと正規表現...
-
Perlで作成したCGIについて
-
Perl/Tk Entry に対して見出し...
-
python wxpythonについて質問です
-
条件分岐によってuseやrequire...
-
TwitterAPI1.1でGetメソッド(...
-
Perl/TkでURLを既定のブラウザ...
-
Perl/TkのWWW::MechanizeのGET...
-
LWP::Simpleでのgetについて
-
Perl LWPでのIPv6エラー
-
perlでhtmlファイルを取得した...
-
perlでのオブジェクト指向の書き方
-
Perl webのテキストボックスに...
-
Win32でInputBoxを実装するには?
-
Perl での XML 処理での DTD 宣...
-
ネストされているRSSのデー...
おすすめ情報