No.2ベストアンサー
- 回答日時:
私ならMechanizeを使いますが。
他の方の書き込みも美しいですなぁ。
WWW-Mechanize
http://search.cpan.org/~petdance/WWW-Mechanize-1 …
#!/usr/bin/perl
use strict;
use WWW::Mechanize;
use encoding 'utf8';
my $mech = WWW::Mechanize->new;
$mech->get("http://www.google.co.jp/");
for my $form($mech->forms){
printf("%s %s\n", $form->method, $form->action);
my @names = $form->param;
for(@names){
printf(" %s => %s\n", $_, $form->param($_));
}
print "\n";
}
No.1
- 回答日時:
やり方は色々あるんですが、HTML::TagParserを使う方法を書きます。
表示がずれるので、空白2文字を全角空白にしてます。
use strict;
use warnings;
use HTML::TagParser;
my $page = << 'EOT';
<html>
<head>
<title>The Title</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<hr />
<form id="form1" method="get" action="print_env1.cgi">
<input type="text" name="username" value="Anonymous" /><br />
<input type="submit" name="Send" value="Send" />
</form>
<form id="form2" method="post" action="print_env2.cgi" enctype="multipart/form-data">
<input type="text" name="username" value="Anonymous" /><br />
<input type="submit" name="Send" value="Send" />
</form>
</body>
</html>
EOT
my $html = HTML::TagParser->new($page);
my @forms = $html->getElementsByTagName('form');
for my $elem (@forms) {
my $tagname = $elem->tagName;
my $attr = $elem->attributes;
my $text = $elem->innerText;
print "--- tagname", $/, $tagname, $/;
print "--- attribute", $/;
for my $key ( sort keys %{$attr} ) {
print "$key=", $attr->{$key}, $/;
}
print "--- interText", $/, $text, $/;
}
# result
#
# --- tagname
# form
# --- attribute
# action=print_env1.cgi
# id=form1
# method=get
# --- interText
#
# --- tagname
# form
# --- attribute
# action=print_env2.cgi
# enctype=multipart/form-data
# id=form2
# method=post
# --- interText
#
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript Javascript初心者|jQueryの.val()で値を取得し複数の要素を連結させる方法知りたい 2 2022/06/02 12:06
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
標準入力からデータが読込めない
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
WEBページを強制的に横画面で見...
-
select値をhiddenのvalueに渡し...
-
pythonのnumpyでの列(縦)ベク...
-
日本語文字化け(GETメソッド?)
-
EXCELとの連携
-
チェックボックスグループの一...
-
HTML プルダウンメニューの選択...
-
vsftpd+sslでアップロードできない
-
iis+cgiでmultipart/form-data...
-
Javascriptの変数をCGIに送る方法
-
INPUT TYPE
-
VB.net データーグリッドビュー...
-
チェックボックスの返す値
-
CGI経由でのPDFファイルをダウ...
-
「value」に2つの値をセットす...
-
postデータのあるページの再表示
-
VB初心者。小数点以下の表示で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サーバーのテキストファイルを...
-
XML::Simpleの使い方について
-
IIS の@INC ERRORについて教えて
-
Mechanizeにおけるボタンクリッ...
-
perl の grepで 全角カタカナで...
-
フォームメール確認用ページ
-
標準入力からデータが読込めない
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
select値をhiddenのvalueに渡し...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
INPUT TYPE
-
WEBページを強制的に横画面で見...
-
[HTML]プルダウンメニューの横...
-
VB.net データーグリッドビュー...
-
別formのhidden項目を自form値...
-
FORMのselectの選択肢を最初か...
-
VB初心者。小数点以下の表示で...
-
EXCELとの連携
おすすめ情報