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

5万+

被折叠的 条评论
为什么被折叠?



