Jsoup实现Iteye自动登录
生活随笔
收集整理的這篇文章主要介紹了
Jsoup实现Iteye自动登录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本來是為找如何實現(xiàn)有js動態(tài)加載網(wǎng)頁的表單自動填寫和提交,發(fā)現(xiàn)httpclient貌似不行,于是換成Jsoup,好像也不行,這里是Jsoup實現(xiàn)靜態(tài)網(wǎng)頁自動提交表單的代碼。
package gddx;import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map;import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.Connection.Method; import org.jsoup.Connection.Response; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element;/*** @author Jason.F* Date 2016年5月20日* **/public class IteyeLogin {private String loginURL ="http://www.iteye.com/login";private void login(){ //第一次請求Connection conFirst=Jsoup.connect(loginURL);//配置模擬瀏覽器conFirst.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");Response rs=null;try {rs = conFirst.execute();} catch (IOException e2) {// TODO Auto-generated catch blocke2.printStackTrace();}//獲取響應(yīng)Document d1=Jsoup.parse(rs.body());//轉(zhuǎn)換為Dom樹List<Element> et= d1.select("#login_form");//獲取form表單,可以通過查看頁面源碼代碼得知//獲取,cooking和表單屬性,下面map存放post時的數(shù)據(jù) Map<String, String> datas=new HashMap<>();for(Element e:et.get(0).getAllElements()){System.out.println(e.text());if(e.attr("name").equals("name"))e.attr("value", "fjssharpsword");//設(shè)置用戶名if(e.attr("name").equals("password"))e.attr("value","xyz"); //設(shè)置用戶密碼if(e.attr("name").length()>0)//排除空值表單屬性datas.put(e.attr("name"), e.attr("value")); } /*** * 第二次請求,post表單數(shù)據(jù),以及cookie信息**/Connection conSecond=Jsoup.connect(loginURL);conSecond.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");//設(shè)置cookie和post上面的map數(shù)據(jù)Response rsLogin=null;try {rsLogin = conSecond.ignoreContentType(true).method(Method.POST).data(datas).cookies(rs.cookies()).execute();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}//輸出提交后html,看地址列表System.out.println(rsLogin.body());//登陸成功后的cookie信息,可以保存到本地,以后登陸時,只需一次登陸即可Map<String, String> map=rsLogin.cookies();for(String s:map.keySet())System.out.println(s+" "+map.get(s));}public static void main(String[] args) {IteyeLogin lession = new IteyeLogin();lession.login();} }總結(jié)
以上是生活随笔為你收集整理的Jsoup实现Iteye自动登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HttpClient实现CSDN自动登录
- 下一篇: Hadoop平台日志结构