Webデータ取得(HTTPヘッダー, HTMLソース, use Socket)
#! /usr/local/bin/perl use Socket; $host = "webings.net"; #Webデータ取得先ホスト $file = "/sample/index.html"; #Webデータ取得ファイル print qq(Content-type: text/html; charset=Shift_JIS\n\n); print <<END; <html> <head> <title>Webデータ</title> </head> <body> <form action="" method="POST" style="width:center;text-align:center"> Webデータ取得<br> <textarea cols="80" rows="20"> END print getData($host, $file); #Webデータ取得 print <<END; </textarea> </form> </body> </html> END exit; #============================================================================== Webデータ取得 sub getData { my $port = getservbyname("http", "tcp"); my $ipaddr = inet_aton($_[0]) or return "ホスト名検出エラー"; my $sock_addr = pack_sockaddr_in($port, $ipaddr); socket(SOCK, PF_INET, SOCK_STREAM, 0) or return "ソケット作成エラー"; connect(SOCK, $sock_addr) or return "サーバー接続エラー"; select(SOCK); $|=1; select(STDOUT); print SOCK qq(GET $_[1] HTTP/1.0\n); print SOCK qq(Host:$_[0]\n); print SOCK qq(Connection:close\n\n); while(<SOCK>){ #HTTPヘッダーを取得しない場合 last if m/^\r\n$/; } my @html = <SOCK>; close SOCK; return @html; }
〔 実行する 〕