0

私は検索のためにグーグルインサイトから.csvファイルをダウンロードするためにperlを使用しようとしています。しかし、私は2つの問題に直面します。

  1. ダウンロードURLはリダイレクトURLのようですので、LWPモジュールではダウンロードできません。URLは「http://www.google.com/insights/search/overviewReport?q=dizzy&date=1%2F2012%205m&cmpt=date&content=1&export=1」です。あなたはそれを試すかもしれません、おそらく最初にログインするべきです。

  2. ダウンロードする前にセッションを保存する必要があるようです。これを行わないと、「クォータ制限に達する」などの警告が表示されます。

PERLを使用してこの.csvファイルを自動的にダウンロードするにはどうすればよいですか?助けてくれてありがとう。

これが私のコードです:

#create userAgent object
my $ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");

#create a request
my $req = HTTP::Request->new(GET => 'http://www.google.com/insights/search/overviewReport?q=dizzy&date=1%2F2012%205m&cmpt=date&content=1&export=1');

my $res = $ua->request($req);

#check the outcome of the response
if($res->is_success) {
    print $res->content;
}
else {
    print $res->status_line, "\n";
}    
4

1 に答える 1

0

Web自動化のためにWWW::Mechanizeを使用することを強くお勧めします(これは高レベルのLWP :: UserAgentです):

#!/usr/bin/perl

use strict;
use warnings;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new();
$mech->agent_alias("Windows IE 6");

$mech->get("https://accounts.google.com/serviceLogin");
$mech->submit_form(

    form_id => "gaia_loginform",
    fields => {

        Email => 'gangabass@gmail.com',
        Passwd => 'password',
    },
    button => "signIn",
);

$mech->get("http://www.google.com/insights/search/overviewReport?q=dizzy&date=1%2F2012%205m&cmpt=date&content=1&export=1");
open my $fh, ">:encoding(utf8)", "report.csv" or die $!;
print {$fh} $mech->content();
close $fh;
于 2012-08-03T00:07:27.297 に答える