2011-12-02 184 views
1

我需要幫助抓取網站。認證形式如下:抓取密碼保護網站

`<!-- Start Form --> 
    <form action="/idp/Authn/UserPassword" method="post"> 

<table align=center> 
    <tr> 
     <td>Username:</td> 
     <td><input name="j_username" type="text" tabindex="1" /></td> 
    </tr> 
    <tr> 
     <td>Password:</td> 
     <td><input name="j_password" type="password" tabindex="2" /></td> 
    </tr> 
    <tr> 
     <td colspan="2"><input type="submit" value="Login" tabindex="3" /></td> 
    </tr> 
</table> 

`

我試圖抓取頁面:https://my-plant.org/users/all

爲了訪問用戶信息的網站,我必須首先得到認證。我有一個用戶名和密碼,我只是很難獲得認證。任何幫助,將不勝感激!

謝謝。

+1

手動登錄,然後對其進行爬網。 –

+0

我該怎麼做呢@SnOrfus – user1011332

+1

如果你遇到了麻煩,那麼你可能需要和該網站的網站管理員一起討論。 – Benjam

回答

0

您可以使用Netwoof API讓您在任何網站上配置漫遊器,即使需要進行身份驗證。

1

使用Perl,它相當真棒:)試試這個,看看它是否適合你..

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

my $mech = WWW::Mechanize->new(); 
$mech->get('https://auth.iplantcollaborative.org/idp/Authn/UserPassword'); 
$mech->form(1); 
$mech->field('j_username', 'yourusername'); 
$mech->form(2); 
$mech->field('j_password', 'yourpassword'); 
$mech->click(); 
+0

很高興嘗試一下,但是...我以後如何抓取?任何庫遞歸爬取auth'd頁? – Riccardo

1

,如果你想通過一些認證形式,然後在Python你可以使用機械化。實際上機械化是一種庫,通過它你可以很容易地填寫表格,可以進行會話管理,並有像.getelementByID,byName這樣的功能,你可以用它填寫表格並輕鬆下載網頁。