0

我需要下载某个 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());



    }

我希望你能理解我的想法……有什么建议吗?

4

1 回答 1

0

似乎您正在使用HtmlUnit,您没有在问题中指定。

身份验证适用于 cookie。您尚未将其合并到您的代码中。当您第一次登录时,服务器会向您发送 cookie,您需要捕获这些 cookie 并在后续请求中重新发送。我对 HtmlUnit 不是很熟悉,但它看起来有一个 CookieManager 类,您可以使用它来获取这样的 cookie:

webClient.getCookieManager().getCookies();

您可能还想看看这个问题

于 2013-02-19T22:30:55.040 回答