本文非原創,原文地址:http://blog.csdn.net/bob007/article/details/29589059
import java.io.IOException;
import java.net.MalformedURLException;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
public class SinaLoginTest {
public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException, InterruptedException {
WebClient client = new WebClient(BrowserVersion.FIREFOX_24);
client.getOptions().setJavaScriptEnabled(true); //默認執行js,如果不執行js,則可能會登錄失敗,因爲用戶名密碼框需要js來繪製。
client.getOptions().setCssEnabled(false);
client.setAjaxController(new NicelyResynchronizingAjaxController());
client.getOptions().setThrowExceptionOnScriptError(false);
HtmlPage page = client.getPage("http://login.sina.com.cn/sso/login.php?client=ssologin.js(v1.3.16)");
//System.out.println(page.asText());
//登錄
HtmlInput pwd = page.getHtmlElementById("password");
HtmlInput btn = page.getFirstByXPath(".//*[@id='vForm']/div[3]/ul/li[6]/div[2]/input");
ln.setAttribute("value", "此處改爲你的用戶名");
pwd.setAttribute("value", "此處改爲你的密碼");
HtmlPage page2 = btn.click();
//登錄完成,現在可以爬取任意你想要的頁面了。
System.out.println("\n\n\n");
//System.out.println(page2.asText());
HtmlPage page3 = client.getPage("http://weibo.com/friends?leftnav=1&wvr=5&isfriends=1&step=2");
Thread.sleep(1000*3);//等待js渲染加載頁面,不然獲取到的頁面body內容不全
System.out.println(" : " + page3.asXml());client.closeAllWindows();
}
}