我需要下载某个Facebook页面的源代码。 所以我以为我会登录到facebook,然后下载源代码。 但是关于我登录的信息很简单,当我尝试下载另一个URL的源代码时,我仍然注销了我的应用程序。
所以这是我的代码:
public class App
{
public static void main( String[] args ) throws IOException
{
System.out.println( "Hello World!" );
final WebClient webClient = new WebClient();
final HtmlPage page1 = webClient.getPage("http://www.facebook.com");
final HtmlForm form = (HtmlForm) page1.getElementById("login_form");
final HtmlSubmitInput button = (HtmlSubmitInput) form.getInputsByValue("Log In").get(0);
final HtmlTextInput textField = form.getInputByName("email");
textField.setValueAttribute("email");
final HtmlPasswordInput textField2 = form.getInputByName("pass");
textField2.setValueAttribute("password");
final HtmlPage page2 = button.click();
HtmlPage weread = webClient.getPage("http://apps.facebook.com/ireadit/?fb_source=bookmark_apps&ref=bookmarks&count=0&fb_bmpos=2_0");
System.out.println(weread.asXml());
}
我希望你理解我的想法..有什么建议怎么做?
答案 0 :(得分:0)
您似乎正在使用HtmlUnit,但未在问题中指明。
身份验证适用于Cookie。您尚未将其合并到您的代码中。首次登录时,服务器会向您发送cookie,您需要捕获cookie并重新发送后续请求。我对HtmlUnit不太熟悉,但看起来它有一个CookieManager类,你可以使用它来获取这样的cookie:
webClient.getCookieManager().getCookies();
您可能还想查看this question。