cookie——小甜品
Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单。简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。
Cookie的使用很普遍,许多提供个人化服务的网站,都是利用Cookie来辨认使用者,以方便送出使用者量身定做的内容。Cookie中记载的资料相有限,Cookie一般认为是安全的。网站不可能经由Cookie获得你的E-mail地址或是其它私人资料,更没有办法透过Cookie来存取你的计算机。但是如果你实在不喜欢Web服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放Cookie到你的计算机。只要在IE的“工具”菜单下选择“Intertnet选项”的“安全”,按自定义级别,将Cookie部分设为关闭,按确定,关闭浏览器,再重新启动浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了。
Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为“0”或负值,这样在关闭浏览器时,就马上清除Cookie,不会记录用户信息,更加安全。
尽管cookie没有病毒那么危险,但它仍包含了一些敏感信息:用户名,计算机名,使用的浏览器和曾经访问的网站。用户不希望这些内容泄漏出去,尤其是当其中还包含有私人信息的时候。Cookie中的内容大多数经过了加密处理,因此在我们看来只是一些毫无意义的字母数字组合,只有服务器的CGI处理程序才知道它们真正的含义。
使用已有的cookie访问网站
import cookielib, urllib2
req = urllib2.Request(url, postdata, header)
req.add_header(’User-Agent’, \
‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’) ckjar = cookielib.MozillaCookieJar(os.path.join(’C:\Documents and Settings\tom\Application Data\Mozilla\Firefox\Profiles\h5m61j1i.default’, ‘cookies.txt’))
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(ckjar) ) f = opener.open(req)
htm = f.read()
f.close()
访问网站获得cookie,并把获得的cookie保存在cookie文件中
import cookielib, urllib2
req = urllib2.Request(url, postdata, header)
req.add_header(’User-Agent’, \
‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)’) ckjar = cookielib.MozillaCookieJar(filename)
ckproc = urllib2.HTTPCookieProcessor(ckjar)
opener = urllib2.build_opener(ckproc) f = opener.open(req)
htm = f.read()
f.close() ckjar.save(ignore_discard=True, ignore_expires=True)
使用指定的参数生成cookie,并用这个cookie访问网站
import urllib.request as ur
import urllib.parse as up
#import http.cookiejar as cj
#coding:gbk charset='utf8' #组件信息
#cookiejar = cj.CookieJar()
#urlopener = ur.build_opener(ur.HTTPCookieProcessor(cookiejar))
urlopener = ur.build_opener(ur.HTTPCookieProcessor()) #jiayuan配置信息
name='Yatere'
uid='' #http头
headers={'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)'}
seachhead={'User-Agent':'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)',
'Referer':'http://search.jiayuan.com/',
'Origin':'http://search.jiayuan.com'} #用户登入data
values = {'password':'','name':'yin_kai@163.com'} #搜索data
searchdata={
'sex':'f',
'work_location':'',
'work_sublocation':'',
'min_age':'',
'max_age':'',
'min_height':'',
'max_height':'',
'education':'',
'edu_more_than':'on',
'astro':'',
'animal':'',
'bloodtype':'',
'income':'',
'house':'',
'auto':'',
'marriage':'',
'children':'',
'level':'',
'industry':'',
'company':'',
'home_location':'',
'home_sublocation':'',
'nation':'',
'belief':'',
'ques_love':'',
'avatar':'on',
'save_name':''} #post数据转换程序
def data(values):
data=up.urlencode(values).encode()
return data #访问指定页面
def geturlcon(url,data=None,headers=headers):
request = ur.Request(url,data,headers)
url = urlopener.open(request)
page=url.read().decode('utf8','ignore')
return page #检测是否登入成功
def checklogin(page):
if page.find(name)>0:
return True
elif page.find(uid)>0:
return True
else:
return False #访问登陆页面(获得cookie)
url1='http://login.jiayuan.com/dologin.php'
geturlcon(url1,data(values),headers) #登入后访问其他页面
url2='http://www.jiayuan.com/usercp/'
page=geturlcon(url2)
if checklogin(page):
print ('登入成功')
else:
print ('登入失败') url3='http://profile.jiayuan.com/14214171'
page=geturlcon(url3) if checklogin(page):
print (url3,'登入成功')
else:
print ('登入失败') #查看搜索结果
url3='http://search.jiayuan.com/result.php?t=10&m=1'
page=geturlcon(url3,data(searchdata),seachhead) if checklogin(page):
print (url3,'登入成功')
else:
print ('登入失败')
cookielib用于读取、保存cookie;URLlib2中的HTTPcookieProcessor()建立cookie处理器,urllib2中的build_opener()根据cookie处理器建立网页打开器,urllib2中Request()构建请求,open()打开器执行请求。另外,urllib2中installopener()可以把打开器加载到urllib2中,在Python3.0后,urllib2整合到了urllib中即:urllib.request
cookie——小甜品的更多相关文章
- Cookie小案例-----记住浏览过的商品记录
Cookie小案例------记住浏览过的商品记录 我们知道,这个功能在电商项目中非经常见.这里处理请求和页面显示都是由servlet实现,主要是为了体现cookie的作用, 实现功能例如以下: 1, ...
- cookie小栗子-实现简单的身份验证
关于Cookie Cookie是一种能够让网站Web服务器把少量数据储存到客户端的硬盘或内存里,或是从客户端的硬盘里读取数据的一种技术. 用来保存客户浏览器请求服务器页面的请求信息,可以在HTTP返回 ...
- 左手Cookie“小甜饼”,右手Web Storage
目录 1. Web Storage 2. Cookie机制 3. 二者的联系与区别 1.Web Storage 1.1 概述 Web Storage是HTML5提供的一种新的浏览器端数据储存机制,它提 ...
- cookie小析
cookie用于存储数据,当用户访问了某个网站(网页)时,我们就可以通过cookie来向访问者电脑上存储数据1.不同的浏览器存放的cookie位置不同,也不能通用2.cookie的存储是以域名的形式进 ...
- 20160328 javaweb Cookie 小练习
利用cookie实现历史记录浏览: 由于是简单演示,所以直接用javabean 取代数据库了 数据存储类: package com.dzq.dao; import java.util.*; impor ...
- Javascript Cookie小插件
var ManagerCookie = function(){ //添加cookie function addCookie(key,value,time,path){ key = encodeURI( ...
- 31、cookie小test
请尽量使用JQuery进行代码编写,需求如下: 1. 页面初始化样式如图 2. 顶部input框中输入内容,按下回车enter键后,“正在进行” 列表中加入该条内容. 3. 顶部input框中输 ...
- Session & Cookie小知识~
Cookie 一个HTTP cookie的(也称为网络Cookie,互联网的cookie,浏览器cookie,或者干脆饼干)是一小块从发送的数据的网站用户的并存储在用户的计算机上的网页浏览器,而用户浏 ...
- cookie小细节
设置cookie时,不像设置session,可以马上生效,它的生效时间是下一次请求页面.
随机推荐
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- ExtJS 4.2 业务开发(三)数据添加和修改
接上面的船舶管理业务,这里介绍添加和修改操作. 目录 1. 添加操作 2. 修改操作 3. 在线演示 1. 添加操作 1.1 创建AddShipWindow.js 在业务中的view目录下创建一个Ad ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(76)-微信公众平台开发-网页授权
前言 网页授权是:应用或者网站请求你用你的微信帐号登录,同意之后第三方应用可以获取你的个人信息 网上说了一大堆参数,实际很难理解和猜透,我们以实际的代码来演示比较通俗易懂 配置 实现之前我们必须配置用 ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- SQL Server-聚焦在视图和UDF中使用SCHEMABINDING(二十六)
前言 上一节我们讨论了视图中的一些限制以及建议等,这节我们讲讲关于在UDF和视图中使用SCHEMABINDING的问题,简短的内容,深入的理解,Always to review the basics. ...
- iOS开发之ReactiveCocoa下的MVVM(干货分享)
最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的.在之前发表过一篇博文,名字叫做<iOS开发之浅谈MVVM的架构设计与团 ...
- html5 canvas常用api总结(二)--绘图API
canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而 ...
- Ajax使用WCF实现小票pos机打印源码
通过ajax跨域方式调用WCF服务,实现小票pos机的打印,源码提供web方式,客户端方式测试,服务驻留右侧底部任务栏,可控制服务开启暂停,用户可自定义小票打印模板,配合零售录入. qq 22945 ...
- springmvc的拦截器
什么是拦截器 java里的拦截器是动态拦截action调用的对象.它提供了一种机制可以使 ...
- java中if和switch哪个效率快
首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...