Jsoup 表单提交(登录及登录后访问)

本文介绍了一个使用Java和Jsoup库实现的Web登录及数据抓取的小程序。该程序能够通过POST请求携带用户名和密码进行登录,获取并利用登录后的cookies访问目标页面,解析页面中的表格数据,适用于大规模服务器数据查询场景。

//工作需要根据给的xml文档,到指定的服务器查找两千多台服务器数据,还只能一台一台的查。写了个小程序查找,正好练练JAVA 

public boolean loginWeb(String userName, String passwd, String url) {
    try {
        Connection connection = Jsoup.connect(url);
        connection.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) 
            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36");
        Response rs = connection.execute();
        Response login = 
connection.ignoreContentType(true).method(Method.POST).data("username",userName).data("password",passwd).cookies(rs.cookies()).execute();
        
        System.out.println(login.body());

        Map<String, String> map = login.cookies();
        for (String s : map.keySet()) {
            System.out.println("cookies ");
            System.out.println(s + "      " + map.get(s));
        }
	        
		}catch(IOException e){
			
		}

        //用登陆的cookies访问其它页面
	        Document doc = Jsoup.connect("http://XXX.com/traffic-web-in/dbhainfo/loadMysqlhaList.htm?searchValue=10.96.168.41&").cookies(map).get();
	        String title = doc.title();
	        System.out.println(title);
	        Elements elements = doc.getElementsByClass("tb-body");
	        List<String> list = new ArrayList<String>();
	        for(Element element:elements){
				if(element.text()!=null&& !"".equals(element.text())){
					Elements es = element.select("tr");
					for(Element tdelement:es){
						Elements tdes = tdelement.select("td");
						for(int i = 0; i < tdes.size(); i++){
							list.add(tdes.get(i).text());
							System.out.println(tdes.get(i).text());
						}
					}
				}
			}
		
		
		return true;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值