• Jsoup模拟登陆例子


    Jsoup模拟登陆小例子,不同的网站,需要不同的模拟策略,散仙在这里仅仅作为一个引导学习。 

    Java代码  收藏代码
      1. package com.jsouplogin;  
      2.   
      3. import java.util.HashMap;  
      4. import java.util.List;  
      5. import java.util.Map;  
      6.   
      7. import org.jsoup.Connection;  
      8. import org.jsoup.Jsoup;  
      9. import org.jsoup.Connection.Method;  
      10. import org.jsoup.Connection.Response;  
      11. import org.jsoup.nodes.Document;  
      12. import org.jsoup.nodes.Element;  
      13.   
      14. /** 
      15.  * 使用Jsoup模拟登陆Iteye 
      16.  *  
      17.  *  
      18.  * 大体思路如下: 
      19.  *  
      20.  * 第一次请求登陆页面,获取页面信息,包含表单信息,和cookie(这个很重要),拿不到,会模拟登陆不上 
      21.  *  
      22.  *  
      23.  * 第二次登陆,设置用户名,密码,把第一次的cooking,放进去,即可 
      24.  *  
      25.  * 怎么确定是否登陆成功? 
      26.  *  
      27.  * 登陆后,打印页面,会看见欢迎xxx,即可证明 
      28.  *  
      29.  *  
      30.  * @date 2014年6月27日 
      31.  * @author qindongliang 
      32.  *  
      33.  *  
      34.  * **/  
      35. public class JsoupLoginIteye {  
      36.       
      37.     public static void main(String[] args)throws Exception {  
      38.           
      39.         JsoupLoginIteye jli=new JsoupLoginIteye();  
      40.         jli.login("xxxxx", "xxxxx");//输入Iteye的用户名,和密码  
      41.           
      42.     }  
      43.     /** 
      44.      * 模拟登陆Iteye 
      45.      *  
      46.      * @param userName 用户名 
      47.      * @param pwd 密码 
      48.      *  
      49.      * **/  
      50.     public void login(String userName,String pwd)throws Exception{  
      51.           
      52.         //第一次请求  
      53.         Connection con=Jsoup.connect("http://www.iteye.com/login");//获取连接  
      54.         con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");//配置模拟浏览器  
      55.         Response rs= con.execute();//获取响应  
      56.         Document d1=Jsoup.parse(rs.body());//转换为Dom树  
      57.         List<Element> et= d1.select("#login_form");//获取form表单,可以通过查看页面源码代码得知  
      58.           
      59.        //获取,cooking和表单属性,下面map存放post时的数据   
      60.        Map<String, String> datas=new HashMap<>();  
      61.        for(Element e:et.get(0).getAllElements()){  
      62.            if(e.attr("name").equals("name")){  
      63.                e.attr("value", userName);//设置用户名  
      64.            }  
      65.              
      66.            if(e.attr("name").equals("password")){  
      67.                e.attr("value",pwd); //设置用户密码  
      68.            }  
      69.              
      70.            if(e.attr("name").length()>0){//排除空值表单属性  
      71.                  datas.put(e.attr("name"), e.attr("value"));    
      72.            }  
      73.        }  
      74.           
      75.          
      76.        /** 
      77.         * 第二次请求,post表单数据,以及cookie信息 
      78.         *  
      79.         * **/  
      80.        Connection con2=Jsoup.connect("http://www.iteye.com/login");  
      81.        con2.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");  
      82.        //设置cookie和post上面的map数据  
      83.        Response login=con2.ignoreContentType(true).method(Method.POST).data(datas).cookies(rs.cookies()).execute();  
      84.        //打印,登陆成功后的信息  
      85.        System.out.println(login.body());  
      86.          
      87.        //登陆成功后的cookie信息,可以保存到本地,以后登陆时,只需一次登陆即可  
      88.        Map<String, String> map=login.cookies();  
      89.        for(String s:map.keySet()){  
      90.            System.out.println(s+"      "+map.get(s));  
      91.        }  
      92.       
      93.     }  
      94.       
      95.       
      96.       
      97.   
      98.       
      99.       
      100. }  
  • 相关阅读:
    Autodesk Infrastructure Map Server 2012(MapGuide 2012) 最新特性介绍
    MapGuide Fusion Viewer API 如何获取Fusion对象
    MapGuide Fusion viewer中如何用Google Map/Yahoo Map/Bing Map做底图
    Visual Studio 2010开发AutoCAD 2012 .net 应用程序调试时断点不起作用
    MapGuide 用户调查关于RFC 111 Subversion
    MapGuide Enterprise 2011 授权错误的解决办法
    AutoCAD的定制开发接口(高级篇)专题培训材料介绍[转载]
    【转】Autodesk实验室从照片进行三维建模
    AutoCAD 2012最新特性概览
    Autodesk Map 3D 2012 新功能介绍
  • 原文地址:https://www.cnblogs.com/zfswff/p/4960204.html
Copyright © 2020-2023  润新知