2013-02-19 2 views
0

Мне нужно скачать исходный код определенной страницы facebook. Так что я думал, что я войду в facebook, а затем загрузите источник. Но эта информация о моем входе просто потеряна, и когда я пытаюсь загрузить исходный код rom другой url, похоже, я все еще выходил из системы для своего приложения.Загрузить исходный код на facebook

Так вот мой код:

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()); 



    } 

Я надеюсь, вы понимаете, мои предложения idea..any, как это сделать?

ответ

0

Похоже, вы используете HtmlUnit, о котором вы не указали в своем вопросе.

Аутентификация работает с печеньем. Вы не включили это в свой код. Когда вы впервые входите в систему, сервер отправляет вам файлы cookie, которые вам необходимо выполнить и повторно отправить с последующими запросами. Я не очень хорошо знаком с HtmlUnit, но похоже, что он имеет класс CookieManager, который вы можете использовать, чтобы получить печенье, как это:

webClient.getCookieManager().getCookies(); 

Вы также можете захотеть взглянуть на this question.

Смежные вопросы