2012-07-06 115 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