-1

私はWWW::Mechanize自分のメールアドレスを優先アドレスとして自動的に追加するために使用しています。多くの困難を経て、ページにログインできましたが、許可された電子メールアドレスとして電子メールアドレスを追加しようとすると、機能しません。リンクも表示されません。私は何が間違っているのですか?アマゾンページのリンクはこちらです。

私のコード:

use WWW::Mechanize;
use HTTP::Cookies;
use HTML::Form;
use WWW::Mechanize::Link;

my $bot = WWW::Mechanize->new();
$bot->agent_alias( 'Linux Mozilla' );

$bot->cookie_jar( HTTP::Cookies->new(file           => "cookies.txt",
                                     autosave       => 1,
                                     ignore_discard => 1, ) );
# Connect to the login page
my $response = $bot->get( 'https://www.amazon.com/gp/css/homepage.html/' );

# Get the login form. You might need to change the number.
$bot->form_number(3);

# Enter the login credentials.
$bot->field( email => 'email' );
$bot->field( password => 'pass' );
$response = $bot->click();

#print $response->decoded_content;
$bot->get( 'https://www.amazon.com/gp/digital/fiona/manage?ie=UTF8&*Version*=1&*entries*=0#pdocSettings' );
my @links = $bot->find_all_links( tag => "a" );

foreach (@links)
{
  print $_->text()."\n" ;
}

私の改ざんデータはこれです

Referer=https://www.amazon.com/gp/digital/fiona/manage?ie=UTF8&%2AVersion%2A=1&%2Aentries%2A=0

POSTDATA=sid=183-7190983-6755358&newEmail=myid%40mailhost.com

WWW::Mechanize編集:検索した後、JavaScriptがサポートされていないため、これを達成できない可能性があることに気付きました。WWW::Scripterプラグインで使うことにしました。誰かがそれを行う方法を教えてもらえますか?

4

1 に答える 1

1

あなたは他の投稿であなたの質問への答えを見つけました: perlからリンクを呼び出す

これと同様の今後のタスクについては、次の回避策を実行することをお勧めします。

  • Google Chrome をインストールします (まだインストールしていない場合)。
  • ブラウザをナビゲートして、シミュレートするフォーム ページに移動します
  • 送信ボタンでマウスボタンを右クリックし、「要素の検査」を選択します
  • 「ネットワーク」タブに切り替えます
  • フォームの送信ボタンをクリック
  • 「Network」テーブル、特に「Headers」および「Response」サブタブの情報を参照してください。

この種のデバッグにより、Cookie、リファラー、リクエスト メソッド、URL、送信データなどを含む、サーバーとブラウザ間の正確な通信を見つけることができます。

于 2012-05-18T14:30:36.703 に答える