java利用cookiepython爬取动态页面登录以后的页面

JSP 通过Session和Cookie实现网站自动登录-Java基础-Jsp教程-壹聚教程网JSP 通过Session和Cookie实现网站自动登录
今天早上没事做狂网站发现一个非常不错的基于Session和Cookie来实现用户自动登录网站的功能,这个是基于上次登录过网站了,下面直接上代码费话不说多。
&第一步,登陆的时候一旦选择了[自动登录]的选项,则需要在登陆成功后,附加下面的代码. 因为一般网站都提供保存用户名的功能,所以我把这个写到了外面。只有密码是单独处理的。
其中的host就是你的域名
&&&&&&& String host = .getServerName();
&&&&&&& Cookie cookie = new Cookie(&SESSION_LOGIN_USERNAME&, username); // 保存用户名到Cookie
&&&&&&& cookie.setPath(&/&);
&&&&&&& cookie.setDomain(host);
&&&&&&& cookie.setMaxAge();
&&&&&&& response.addCookie(cookie);
&&&&&&& if (ParamUtils.getBooleanParameter(request, &savePass&)) {
&&&&&&&&& // 保存密码到Cookie,注意需要加密一下
&&&&&&&&& cookie = new Cookie(&SESSION_LOGIN_PASSWORD&, MD5.encode(u.getPassword()));
&&&&&&&&& cookie.setPath(&/&);
&&&&&&&&& cookie.setDomain(host);
&&&&&&&&& cookie.setMaxAge();
&&&&&&&&& response.addCookie(cookie);
这样,Cookie就生成了
第二步,在用户访问网站的时候,如果检测到没有登陆,则进行下面的判断。
&&& String usernameCookie =
&&& String passwordCookie =
&&& Cookie[] cookies = request.getCookies();
&&& if (cookies != null) {
&&&&& for (Cookie cookie : cookies) {
&&&&&&& if (&SESSION_LOGIN_USERNAME&.equals(cookie.getName())) {
&&&&&&&&& usernameCookie = cookie.getValue(); // 得到cookie的用户名
&&&&&&& if (&SESSION_LOGIN_PASSWORD&.equals(cookie.getName())) {
&&&&&&&&& passwordCookie = cookie.getValue(); // 得到cookie的密码
&&&&&&& }www.111cn.net
&&&&& if (usernameCookie != null && passwordCookie != null) { // 如果存在
&&&&&&& if(Login.checkLogin(usernameCookie ,passwordCookie)){
&&&&&&&&& // 登陆成功的处理
&&&&&&& }else{
&&&&&&&&&& // 登陆不成功的处理
是不是很简单
上一页: &&&&&下一页:相关内容jsp使用cookie实现记住密码的功能-java-电脑编程网jsp使用cookie实现记住密码的功能作者:hetan520 和相关&&使用cookie实现记住密码的功能,代码怎么写的。这个问题困扰我很长时间了,请高手帮帮我。在登陆界面,如果用户点击记住密码复选框,在下次打开登录界面时候用户名和密码不用输入,已经在文本框中!请高手一定要帮帮我,我真的很急。先谢谢大家了!------回答---------------其他回答(8分)---------JAVA取数据。其中 request 是 HttpServletRequest 对象Java code
Cookie[] cookies = request.getCookies();
for (int i = 0; cookies != null && i & cookies. i++) {
System.out.println(cookies[i].getName() + &=& + cookies[i].getValue());
}
存数据。其中 response 是 HttpServletResponse 对象Java code
Cookie cookie = new Cookie(&testkey&,&testvalue&);
cookie.setMaxAge(3600);// 有效时间,单位是秒
cookie.setPath(&abc&);// 路径,一定要设置,不然可能产生多个COOKIE文件
response.addCookie(cookie);
// 然后返回一个 JSP 页面。一定要返回,不然不会保存
[/codet]
删除
[code=Java]
Cookie cookie = new Cookie(&testkey&, null);
cookie.setMaxAge(0);
cookie.setPath(&...&);
response.addCookie(cookie);
scriptJScript code
//写cookies函数
//两个参数,一个是cookie的名称,一个是值
function SetCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
= new Date();
//new Date(&December 31, 9998&);
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + &=&+ escape (value) + &;expires=& + exp.toGMTString();
}
//读取cookies函数
function getCookie(name)
{
var arr = document.cookie.match(new RegExp(&(^| )&+name+&=([^;]*)(;|$)&));
if(arr != null) return unescape(arr[2]);
}
//删除cookie
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + &=&+cval+&;expires=&+exp.toGMTString();
}
------其他回答(2分)---------1.这个一个页面模拟的cookie,如果你要实现登录,当用户输入用户名密码时,到控制层用Cookie user = new Cookie(&user&,name+&-&+passward);加到cookie中,然后在访问此登录页面时,就先调用Cookie[] cookies=request.getCookies(); 看cookie中是否有user这个值,如果有就取得用户名、密码。代码示例:&%@ page language=&& import=&java.util.*& pageEncoding=&utf-8&%&&%String name=&nihao&;String passward=&nihao&;try{Cookie user = new Cookie(&user&,name+&-&+passward);user.setMaxAge(60);response.addCookie(user);Cookie[] cookies=request.getCookies();if(cookies!=null){for(int i=0;i&cookies.i++){if(cookies[i].getName().equals(&user&)){name=cookies[i].getValue().split(&-&)[0];passward=cookies[i].getValue().split(&-&)[1];request.setAttribute(&name&,name);request.setAttribute(&pass&,passward);}}}}catch(Exception e){e.printStackTrace();}%&&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&&html&&head&&title&&/title&&meta http-equiv=&pragma& content=&no-cache&&&meta http-equiv=&cache-control& content=&no-cache&&&meta http-equiv=&expires& content=&0&&&meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&&&meta http-equiv=&description& content=&This is my page&&&!--&link rel=&stylesheet& type=&text/css& href=&styles.css&&--&&/head&&body&&form action=&test10.& method=&post&&&input type=&text& value=&${name}& name=name /&&/br&&input type=&text& value=&${pass}& name=pass /&&input type=&submit& value=&提交&&&/form&&/body&&/html&相关资料:|||||||jsp使用cookie实现记住密码的功能来源网络,如有侵权请告知,即处理!编程Tags:                &                    我在Java的后台中设置的cookie,在页面如何使用JavaScript得到?
[问题点数:20分]
我在Java的后台中设置的cookie,在页面如何使用JavaScript得到?
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2010年5月 Java大版内专家分月排行榜第一2010年2月 Java大版内专家分月排行榜第一2010年1月 Java大版内专家分月排行榜第一2010年1月 Oracle大版内专家分月排行榜第一2009年12月 Java大版内专家分月排行榜第一2009年12月 Oracle大版内专家分月排行榜第一
2010年2月 Oracle大版内专家分月排行榜第三
2010年2月 Java大版内专家分月排行榜第二
2011年7月 Java大版内专家分月排行榜第三2010年1月 Java大版内专家分月排行榜第三2009年12月 Java大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。java 使用Jsoup登录网站抓取网页内容 - 为程序员服务
为程序员服务
使用Jsoup登录网站抓取网页内容
Jsoup可以很方便的模拟浏览器登录,然后根据登录获得sessionid继续做请求来抓取网页的内容。
登录的示例代码如下:
Connection.Response res = Jsoup.connect(&/login.php&)
.data(&username&, &myUsername&, &password&, &myPassword&)
.method(Method.POST)
.execute();
Document doc = res.parse();
//这儿的SESSIONID需要根据要登录的目标网站设置的session Cookie名字而定
String sessionId = res.cookie(&SESSIONID&);
在上面的代码成功登录后,就可以利用登录的cookie来保持会话,抓取网页内容了
Document objectDoc = Jsoup.connect(&/otherPage&)
.cookie(&SESSIONID&, sessionId)
您可能的代码
相关聚客文章
相关专栏文章阅读(6756)
能模拟浏览器发起请求,得到想要的反回结果。
只有登录后才可以看某些板块
浏览器实现这个效果需要如下几个步骤:
? 1请求一个需要登录的页面或资源
? 2服务器判断当前的会话是否包含已登录信息。如果没有登录重定向到登录页面
? 3手工在登录页面录入正确的账户信息并提交
? 4服务器判断登录信息是否正确,如果正确则将登录成功信息保存到中
? 5登录成功后服务器端给浏览器返回会话的信息保存到客户端的中
? 6浏览器自动跳转到之前的请求地址并携带之前的(包含登录成功的)
? 7服务器端判断中是否有成功登录信息,如果有则将请求的资源反馈给浏览器
下面使用模拟上述过程,这里只实现手工发起登录,并携带发起第二次请求资源的过程。(网上实际有过好多这样的例子,这里只是自己写出来备忘)
此处请求的是的博客主页,其他地址需要手动构建下。
本文是一个的是
有这两个包
使用构建的,需要下载包的可以使用添加如下依赖
&dependency&
&groupId&org.apache.httpcomponents&/groupId&
&artifactId&httpclient&/artifactId&
&version&4.2.5&/version&
&/dependency&
没有支持的也可以到的网站上去下载,方式有好多种或联系我
下面给出Java代码
package org.jshand.utils.
import java.io.FileOutputS
import org.apache.http.HttpE
import org.apache.http.HttpR
import org.apache.http.client.CookieS
import org.apache.http.client.methods.HttpG
import org.apache.http.client.methods.HttpP
import org.apache.http.impl.client.DefaultHttpC
import org.apache.http.impl.conn.PoolingClientConnectionM
import org.apache.http.util.EntityU
* TODO(用一句话描述该文件的作用)
* @title: HttpClientDemo.java
* @author zhangjinshan-ghq
public class HttpClientDemo
* The main method.
* @param args the arguments
* @throws Exception the exception
public static void main(String[] args) throws Exception
getResoucesByLoginCookies();
* 根据登录Cookie获取资源
* 一切异常均未处理,需要酌情检查异常
* @throws Exception
private static void getResoucesByLoginCookies() throws Exception
HttpClientDemo demo = new HttpClientDemo();
String username = "XXXXXXXXX";// 登录用户
String password = "XXXXXXXX";// 登录密码
// 需要提交登录的信息
String urlLogin = "/login?name=" + username + "&password=" +
// 登录成功后想要访问的页面 可以是下载资源 需要替换成自己的iteye Blog地址
String urlAfter = "/";
DefaultHttpClient client = new DefaultHttpClient(new PoolingClientConnectionManager());
* 第一次请求登录页面 获得cookie
* 相当于在登录页面点击登录,此处在URL中 构造参数,
* 如果参数列表相当多的话可以使用HttpClient的方式构造参数
* 此处不赘述
HttpPost post = new HttpPost(urlLogin);
HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();
CookieStore cookieStore = client.getCookieStore();
client.setCookieStore(cookieStore);
* 带着登录过的cookie请求下一个页面,可以是需要登录才能下载的url
* 此处使用的是iteye的博客首页,如果登录成功,那么首页会显示【欢迎XXXX】
HttpGet get = new HttpGet(urlAfter);
response = client.execute(get);
entity = response.getEntity();
* 将请求结果放到文件系统中保存为 myindex.html,便于使用浏览器在本地打开 查看结果
String pathName = "d:\\myindex.html";
writeHTMLtoFile(entity, pathName);
* Write htmL to file.
* 将请求结果以二进制形式放到文件系统中保存为.html文件,便于使用浏览器在本地打开 查看结果
* @param entity the entity
* @param pathName the path name
* @throws Exception the exception
public static void writeHTMLtoFile(HttpEntity entity, String pathName) throws Exception
byte[] bytes = new byte[(int) entity.getContentLength()];
FileOutputStream fos = new FileOutputStream(pathName);
bytes = EntityUtils.toByteArray(entity);
fos.write(bytes);
fos.flush();
fos.close();
阅读排行榜}

我要回帖

更多关于 页面跳转cookie消失 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信