cookie的格式,如何保存及获取以及其特点

cookie格式?

cookie就是一串字符串,格式就是键值对,分号隔开,三个属性可有可无。

cookieName=cookieValue;expires=GMTString;path=URLpath;domain=siteDomain cookie名称 cookie值 失效日期 可访问url 可访问主机

eg:

//写入7天后过期的cookie
var date=new Date();
date.setDate(date.getDate()+7);

//一个网站中可能会有很多网页都需要保存cookie。
同样是给document.cookie属性赋值。不会覆盖原来的cookie,只会追加(除非键是一样的)。

document.cookie="userName=zhang; expires="+date.toGMTString();
document.cookie="userPws=123456; expires="+date.toGMTString();

读取上边写入的cookie,因为cookie每次是全部获取,所以需要自己写解析cookie的代码。

var uname,upws;
var cookiearr=document.cookie.split("; ");
for(var i=0;i<cookiearr.length;i++){
    var coocieItem=cookiearr[i].split("=");
    if(coocieItem[0]=="userName"){
        uname=coocieItem [1];
    }
    if(coocieItem[0]=="userPws"){
        upws=coocieItem [1];
    }
}

获取cookie,只需要一句话:document.cookie

document.cookie=“cookieName=cookieValue”;//设置cookie

没有指定失效日期的cookie在浏览器关闭后就消失。

可访问url指定网站下能够访问cookie的路径。例:/shop 可访问主机指定可访问cookie的主机名。例:www.163.com和mail.163.com指定为163.com

注:失效日期由date.toGMTString()方法取得。

 

Cookie的特点

(1)cookie可能被禁用。

(2)cookie是与浏览器相关的。不同浏览器所保存的cookie也是不能互相访问的。

(3)cookie可能被用户删除。

(4)cookie安全性不够高。如果要保存用户名密码等信息时,最好事先经过加密处理。

(5)存储的数据量 4k 大小,cookie只支持存储string类型的数据。

(6)简单易用。

(7)信息存储于用户硬盘,因此可以作为全局变量。

cookie的增删改

添加与覆盖: 浏览器用cookie名称来区别cookie,添加不同名称cookie会一直续在前一个cookie后,同名的cookie会覆盖值。

删除cookie: 不能直接删除cookie,但是设置过期日期为过去,浏览器会删除cookie。

中文及特殊字符支持: 使用escape()函数编码cookie值,读取时使用unescape()函数解码。

判断cookie是否存在: document.cookie.indexOf(NameOfCookie+“=”); //使用字符串函数indexOf

例:document.cookie=“str=”+escape(“I love ajax”);相当于document.cookie="str=I%20love%20ajax";

JSON与字符串的互相转换

JSON.parse()【从一个字符串中解析出JSON对象】

例: var data='{"name":"goatling"}' JSON.parse(data) 结果是: {name:"goatling“}

JSON.stringify()【从一个JSON对象中解析出字符串】

例:var data={name:'goatling'} JSON.stringify(data) 结果是: '{"name":"goatling"}‘

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用WebMagic获取网站的动态Cookie,你可以按照以下步骤进行操作: 1. 首先,创建一个新的Java项目,并添加WebMagic的依赖。你可以在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>us.codecraft</groupId> <artifactId>webmagic-core</artifactId> <version>0.7.3</version> </dependency> ``` 2. 创建一个新的Spider对象,并设置需要爬取的网址: ```java Spider spider = Spider.create(); // 设置需要爬取的网址 spider.addUrl("http://example.com"); ``` 3. 在Spider对象上注册一个Downloader,并自定义Downloader的实现,用于处理动态Cookie。 ```java // 创建自定义的Downloader Downloader downloader = new MyDownloader(); // 注册Downloader到Spider对象上 spider.setDownloader(downloader); ``` 4. 自定义Downloader类,实现PageDownloader接口,并重写其中的方法。在这个类中,你可以使用一些工具(如HttpClient、Selenium等)来模拟浏览器行为,获取动态Cookie。 ```java public class MyDownloader implements PageDownloader { @Override public Page download(Request request, Task task) { // 使用工具获取动态Cookie String dynamicCookie = getDynamicCookie(); // 创建Page对象并返回 Page page = new Page(); page.setRawText("Response HTML"); page.setUrl(new PlainText(request.getUrl())); page.setStatusCode(200); page.setCookies(new HashMap<String, String>() {{ put("dynamic_cookie", dynamicCookie); }}); return page; } // 自定义方法,获取动态Cookie private String getDynamicCookie() { // 使用工具获取动态Cookie的逻辑 return "dynamic_cookie_value"; } } ``` 5. 运行Spider对象来启动爬虫,并处理返回的页面数据。 ```java spider.run(); ``` 在自定义的Downloader中,你可以使用不同的方法来获取动态Cookie,如使用HttpClient发送HTTP请求,或使用Selenium模拟浏览器行为等。根据具体的需求和网站特点,选择合适的方法来实现动态Cookie获取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值