2012-05-17 77 views
-1

我使用WWW::Mechanize自動將我的電子郵件地址添加爲首選電子郵件地址。經過很多困難後,我可以登錄到該頁面,但是當我嘗試將電子郵件地址添加爲允許的電子郵件地址時,它不起作用。即使鏈接不顯示。我究竟做錯了什麼?亞馬遜頁面的鏈接是this使用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。請有人告訴我該怎麼做?

+0

嗯..我認爲,CPAN可以給你亞馬遜模塊,你是否搜索類似的東西? – gaussblurinc

+0

我找不到允許我爲特定帳戶添加電子郵件地址的人。 – user1092042

+1

該鏈接轉到Amazon.com上* Your Account *的Kindle庫頁面。您是否想要更改分配給您帳戶的電子郵件地址?亞馬遜只允許每個帳戶一個,我不明白想自動改變它。 – Borodin

回答

1

你找到答案,對其他崗位你的問題:Calling a link from perl

對於類似這樣的一個未來的任務,我建議你做以下解決方法:

  • 安裝谷歌瀏覽器(如果你不「T有它已經)
  • 導航瀏覽器形成要模擬對提交按鈕點擊右鍵單擊鼠標右鍵,選擇
  • 頁‘檢查元素’
  • 開關「網絡」標籤
  • 點擊提交表單
  • 「網絡」表中看到的信息按鈕,特別是在「頭」「響應」子標籤。

通過這種調試,你會發現服務器和瀏覽器,包括餅乾,查閱情況,請求方法,URL之間準確的溝通,提交數據等

+0

我意識到,-Only區別我用firefox中的firefox。無論如何感謝您的迴應 – user1092042