2012-07-06 163 views
0


我已經通過使用jsoup登錄到網站上花了幾個小時刮。但它總是給出相同的登錄頁面。
爲了澄清我嘗試與Facebook網站的問題。它也給出了相同的結果。 下面我提到我的代碼網站通過Jsoup

String url ="http://www.facebook.com/"; 
Document doc; 
doc = Jsoup.connect(url) 
     .data("email","[email protected]","pass","xyz") 
     .userAgent("Mozilla").post(); 
System.out.println(doc); 

有誰能夠指向我,我犯了一個錯誤,我怎麼能解決這個問題?
在數據部分「電子郵件」和「」是Facebook登錄頁面的輸入字段ID。
謝謝。

+0

Jsoup是壞的。如果你來自Java背景,請考慮jruby。如果你來自美麗的湯背景,請考慮學習其他東西。 – pguardiario 2012-07-06 12:08:56

+0

是的,但我猜Jruby也調用了htmlUnit函數。我已經使用了htmlunit。它適用於某個網站。但只有一個網站,我不能通過登錄到網站刮取數據。問題是我無法通過使用htmlUnit登錄到網站。我可以登錄到其他網站並使用htmlUnit刮取數據。謝謝 – Amila 2012-07-07 02:57:13

+0

@pguardiario:請你詳細說明爲什麼jsoup不好? – 2012-07-09 12:50:20

回答

3

試試這個:

String url ="http://www.facebook.com/"; 
     Document doc; 
     doc = Jsoup.connect(url) 
     .data("email","[email protected]") 
     .data("pass","xyz") 
     .userAgent("Mozilla") 
     .post(); 

反正Jsoup 是不差,你只需要如何正確地使用它,但你也必須記住,Facebook正在期待更多的參數通過模擬網頁導航進行POST成功登錄。

例如:

charset_test
default_persistent
lgnjs
lgnrnd
區域
LSD 通
持續
時區

如果您需要進行身份驗證,並得到正確的數據,我建議你必須試一試到Android的Facebook SDK:

https://github.com/facebook/facebook-android-sdk/

+0

謝謝,我經歷了你所說的,但仍然會發生同樣的事情。我把用戶登錄表單發佈的所有參數。 – Amila 2012-07-09 04:54:02