- 締切済み
perlでhtmlファイルを取得したいのですが
perlでmixiなどログイン処理のあるサイトのhtmlファイルを取得したいのですがなかなか上手くいきません。 どなたかご教授をお願いします。 ----------------------------------------------------------------- #!/usr/bin/perl use LWP::UserAgent; use HTTP::Cookies; use HTTP::Request::Common; use LWP::Simple; my $mixi_email = 'メールアドレス@yahoo.co.jp'; my $mixi_password = 'パスワード'; my $login_url = 'http://mixi.jp/login.pl'; my $home_url = 'http://mixi.jp/home.pl'; my $mixi = LWP::UserAgent->new($mixi_email, $mixi_password); #Cookieを有効にする# my $cookie = sprintf('cookie_%s_%s.txt', $$, time); my $cookie_jar = HTTP::Cookies->new(file => $cookie, ignore_discard => 1); $mixi->cookie_jar($cookie_jar); #ログインする# my @form = ('email' => $mixi_email, 'password' => $mixi_password, 'next_url' => $home_url);#POSTで送る内容の配列 my $request1 = &HTTP::Request::Common::POST($login_url, [@form]); #リクエストヘッダの生成 my $response1 = $mixi->request($request1); #ログインする getstore("http://mixi.jp/search_community.pl?from=global(取得先の指定)", "test.html"); ---------------------------------------------------------------------- 試しに書いてみたのですがうまくいきませんでした
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- _--_1l1_1_
- ベストアンサー率67% (102/152)
以前、LWP::UserAgent と HTTP::Request::Common と使って、gmail にログ インしようとしましたが、上手くいかずあきらめました。そのときは、 Mechanize を使いました。Mechanize は UserAgent を継承しているので UserAgent の機能は全部使えると思います。 #!/usr/bin/perl use strict; use warnings; use WWW::Mechanize; my $mail = shift || die 'require mail account'; my $uri = shift || 'https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fhl%3Dja%26ui%3Dhtml%26zy%3Dl&bsv=zpwhtygjntrz&scc=1<mpl=default<mplcache=2&hl=ja'; my $pass; { system "stty -echo"; print "Password: "; chop( $pass = <STDIN> ); print "\n"; system "stty echo"; } my $mech = WWW::Mechanize->new(); $mech->agent('Mozilla/5.0'); $mech->timeout(10); $mech->get($uri) or die "$uri:$!"; $mech->submit_form( form_number => 1, fields => { 'Email' => $mail, 'Passwd' => $pass } ) or die "$!"; print $mech->content();