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 を送信します。これを取得して、後続のリクエストで再送信する必要があります。私は HtmlUnit にあまり詳しくありませんが、次のように Cookie を取得するために使用できる CookieManager クラスがあるようです。

webClient.getCookieManager().getCookies();

この質問も参照してください。

于 2013-02-19T22:30:55.040 に答える