`
qindongliang1922
  • 浏览: 2188716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117664
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126072
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60032
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71401
社区版块
存档分类
最新评论

Jsoup模拟登陆例子

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

package com.jsouplogin;

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;

/**
 * 使用Jsoup模拟登陆Iteye
 * 
 * 
 * 大体思路如下:
 * 
 * 第一次请求登陆页面,获取页面信息,包含表单信息,和cookie(这个很重要),拿不到,会模拟登陆不上
 * 
 * 
 * 第二次登陆,设置用户名,密码,把第一次的cooking,放进去,即可
 * 
 * 怎么确定是否登陆成功?
 * 
 * 登陆后,打印页面,会看见欢迎xxx,即可证明
 * 
 * 
 * @date 2014年6月27日
 * @author qindongliang
 * 
 * 
 * **/
public class JsoupLoginIteye {
	
	public static void main(String[] args)throws Exception {
		
		JsoupLoginIteye jli=new JsoupLoginIteye();
		jli.login("xxxxx", "xxxxx");//输入Iteye的用户名,和密码
		
	}
	/**
	 * 模拟登陆Iteye
	 * 
	 * @param userName 用户名
	 * @param pwd 密码
	 * 
	 * **/
	public void login(String userName,String pwd)throws Exception{
		
		//第一次请求
		Connection con=Jsoup.connect("http://www.iteye.com/login");//获取连接
		con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");//配置模拟浏览器
        Response rs= con.execute();//获取响应
        Document d1=Jsoup.parse(rs.body());//转换为Dom树
 	    List<Element> et= d1.select("#login_form");//获取form表单,可以通过查看页面源码代码得知
 	    
 	   //获取,cooking和表单属性,下面map存放post时的数据 
       Map<String, String> datas=new HashMap<>();
	   for(Element e:et.get(0).getAllElements()){
		   if(e.attr("name").equals("name")){
			   e.attr("value", userName);//设置用户名
		   }
		   
		   if(e.attr("name").equals("password")){
			   e.attr("value",pwd); //设置用户密码
		   }
		   
		   if(e.attr("name").length()>0){//排除空值表单属性
				 datas.put(e.attr("name"), e.attr("value"));  
		   }
	   }
 	    
	   
	   /**
	    * 第二次请求,post表单数据,以及cookie信息
	    * 
	    * **/
	   Connection con2=Jsoup.connect("http://www.iteye.com/login");
	   con2.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
	   //设置cookie和post上面的map数据
 	   Response login=con2.ignoreContentType(true).method(Method.POST).data(datas).cookies(rs.cookies()).execute();
 	   //打印,登陆成功后的信息
 	   System.out.println(login.body());
 	   
 	   //登陆成功后的cookie信息,可以保存到本地,以后登陆时,只需一次登陆即可
 	   Map<String, String> map=login.cookies();
 	   for(String s:map.keySet()){
 		   System.out.println(s+"      "+map.get(s));
 	   }
 	
	}
	
	
	

	
	
}
分享到:
评论

相关推荐

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient模拟登陆和抓取页面.pdf

    Jsoup+httpclient 模拟登陆和抓取

    Jsoup+httpclient 模拟登录和抓取知识点: 1. Jsoup库使用介绍: - Jsoup是一个Java的HTML解析器,能够直接解析HTML文档,提供类似于jQuery的操作方法。 - 主要功能包括从URL、文件或字符串中解析HTML,使用DOM或...

    jsoup step to step 模拟登陆

    标题“jsoup step to step 模拟登陆”和描述“jsoup 爬虫 模拟登陆 step to step 模拟登陆”指出了本文的知识主题集中在使用jsoup库进行网站的模拟登录操作。jsoup是一个Java库,用于解析HTML文档,它提供了方便的...

    HttpClient + Jsoup 模拟登陆,解析HTML,信息筛选(广工图书馆)

    以下是一个简单的使用HttpClient和Jsoup模拟登录广工图书馆网站的步骤: 1. **获取登录页面**:首先,我们需要使用HttpClient发送一个GET请求到登录页面,获取页面的HTML内容。这一步可以获取到登录所需的任何隐藏...

    jsoup开发例子学习使用

    **jsoup开发例子学习...在这个jsoup例子压缩包中,你可能会找到一些示例代码,帮助你更好地理解和应用上述概念。通过实际运行这些代码,你将能更直观地了解jsoup的工作原理,从而在自己的项目中更加熟练地运用jsoup。

    httpclient-4.3.3+jsoup-1.7.3模拟登陆csdn

    本项目涉及的是使用Apache HttpClient 4.3.3和Jsoup 1.7.3这两个开源库来实现对CSDN(China Software Developer Network)网站的模拟登录,并在成功登录后抓取用户的个人主页内容。下面将详细阐述这两个库的功能以及...

    jsoup的jar包及例子

    **jsoup库详解与实战应用** jsoup是一个Java库,设计用于处理和解析HTML文档,它使得在Java中抓取和操作网页数据变得极其简单。这个库的强大之处在于它的灵活性和对HTML的智能处理,能够理解和修复不完美的HTML标记...

    安卓网站交互JSONxmlWebserviceUPnP相关-AndroidOkHttp3Jsoup模拟登录教务系统抓取课表和成绩Eclipse版.rar

    【Android OkHttp3 Jsoup】模拟登录教务系统抓取课表和成绩是移动应用开发中的一个典型场景,涉及到的主要技术点包括网络请求库OkHttp3、HTML解析库Jsoup以及JSON和XML数据处理。本项目是针对Eclipse开发环境的,...

    jsoup解析网页

    在搜狐新闻的例子中,可能是获取新闻标题、摘要或发布时间等。 4. **网页爬虫基础** 网页爬虫是一种自动化程序,用于遍历互联网并收集信息。在这个实例中,`myspider`可能是一个简单的爬虫,它针对特定的搜狐新闻...

    jsoup-1.15.3.jar

    jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jar,jsoup-1.15.3.jarjsoup-...

    java爬虫 jsoup,模拟登陆csdn、github.zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    JsoupAPI(jsoup帮助文档)

    **Jsoup API 深入解析** Jsoup 是一个用于处理和解析HTML的Java库,它提供了强大的功能,使得在Java程序中操作HTML文档变得简单而直观。在Jsoup 1.10.2版本中,这个API进一步优化了对HTML的处理能力,提供了丰富的...

    jsoup从网络上抓取图片

    **JSoup库简介** JSoup是一个Java库,用于处理现实世界的HTML。它提供了一种方便、强大且灵活的方式来解析HTML,提取数据以及基于DOM、CSS和直接方法来导航和操作文档。在本教程中,我们将重点讨论如何使用JSoup从...

    基于Java+Jsoup的手机信息爬虫源码.zip

    基于Java+Jsoup的手机信息爬虫源码.zip

    java html解析 工具jsoup和一个简单例子

    import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static void main(String[] args) throws Exception { // 连接到URL并获取HTML文档 Document doc = Jsoup....

    jsoup中文帮助文档

    Jsoup 提供 DOM 风格的方法(如 `getElementById()`, `getElementsByTag()`, `select(String cssQuery)` 等)来遍历 Document 对象并抽取所需数据。例如,你可以通过 CSS 选择器选取元素,然后提取它们的属性、文本...

    Jsoup库文件;Jsoup解析Java包

    Jsoup能够模拟浏览器的行为,理解HTML文档的结构,并通过CSS选择器进行元素定位,非常适合网页数据的提取和分析。 在解析HTML时,Jsoup首先将HTML文档转化为一个DOM(Document Object Model)树,这个树状结构代表...

    Jsoup 1.5.2 和jsoup 1.6

    Jsoup在Web抓取、数据分析和网页爬虫项目中广泛应用。本文将深入探讨Jsoup 1.5.2和1.6这两个版本的主要特性、变化以及如何在项目中使用它们。 首先,让我们了解Jsoup的基本功能。Jsoup的核心功能包括: 1. **HTML...

    jsoup-jar包

    **JSoup:Java的网页抓取与解析库** JSoup是一个用Java编写的开源库,专为处理HTML文档而设计。它提供了丰富的API,使得开发者能够轻松地抓取、解析和操作网页内容。JSoup的核心功能包括从网络或本地文件系统获取...

    Jsoup

    Jsoup的核心功能包括: 1. HTML解析:Jsoup能够解析各种各样的HTML源码,无论是干净的结构化HTML还是充满乱七八糟标签的真实网页。它能处理HTML5和HTML4,甚至一些常见的错误格式也能被正确解析。 2. DOM操作:...

Global site tag (gtag.js) - Google Analytics