2010-08-21 37 views
1

我有以下代碼,它使用WWW::MechanizeHTML::TableExtract模塊。一切都像一個魅力,除了我不能移動到下一頁。我試圖從http://www.wigle.net/gps/gps/main獲得熱點列表。用戶名是natty_a,密碼是natty。點擊[searching],然後點擊Query如何使用機械化訪問wigle.net上的結果頁?

我的腳本應該接受座標和數據並帶上該表。它是這樣做的,但僅限於第一頁。看起來我不能移動到下一頁,不能點擊Next100 >>按鈕。

我嘗試了以下解決方案,但沒有成功:

$mech_browser->post(
    'https://wigle.net/gps/gps/main/confirmquery/', [ 
     pagestart => $i, 
     Query  => 'Next100 >>' 
    ] 
) 

$mech_browserWWW::Mechanize實例,i是結果得到的只是數量。我用Live HTTP Headers找出來。

$mech_browser->click_button(value => 'Next100 >>') 

這也行不通。

回答

3

有一個非常酷的模塊,WWW::Mechanize::Shell,它允許一個具有交互頁面播放,請單擊各種按鈕等 一旦達到令人滿意的結果,可以生成使用WWW::Mechanize一個Perl腳本和執行精確一個人在演奏時表演過的動作。

然後剩下的就是編輯出生成的腳本中不需要的操作。

我建議你使用它來找到你的解決方案。

+0

好的,我更進一步,現在我不知道如何選擇表單2,我有這種形式(使用shell模塊和'窗體'命令):Form [1] POST wigle.net/gps/gps/main/confirmquery pagestart = 0(隱藏只讀)Query = << Previous 100(submit)Form [2] POST wigle.net/gps/gps/main/confirmquery pagestart = 200(隱藏只讀)Query = Next100 >> (提交)我想在表單2上執行'點擊',我可以根據其名稱選擇表單2(根據模塊doc),我沒有看到名稱,任何想法? – snoofkin 2010-08-22 20:40:02

+0

問題解決! – snoofkin 2010-08-22 20:50:46

0

我敢肯定,你需要:

$mech->submit_form(
    form_number => 1, 
    button => "Query", 
); 

但是,如果你在第二頁上的form_number應該是2(因爲第一種形式是「上一步」按鈕)。

+0

它沒有工作,出於某種原因。 無論如何,謝謝你! – snoofkin 2010-08-22 20:40:20