原标题:Python网络爬虫之Cookie技术(一)

当我们访问一个需要用户名和密码登录的网站(例如某宝)时,只要我们注册好并成功登录后,下次访问该网站时,网站就会记住我们的登录信息,而无需重新登录。我们都知道HTTP协议是无状态的,是不可能对用户名和密码进行记录的,那浏览器或者服务器是怎么做到的?其实,这里面就使用到了一种叫Cookie的技术。

1 Cookie是什么?

cookie 是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据。当我们在浏览器内输入url,浏览器会向服务器发送一个HTTP请求,相应的,服务器会响应这个请求,向浏览器返回响应的响应信息。所谓Cookie,可以简单认的为是在浏览器端记录包括登陆状态在内的各种属性值的容器名称,其实就是服务器为了保持浏览器与服务器之间连通状态,而在用户本地上创建的数据。只要用户再一次登陆,服务器会主动地寻找这些预存的数据,而无需再要求像第一次一样的操作。

当客户端首次请求访问服务器时,服务器先在客户端存放包含该客户的相关信息的Cookie,以后客户端每次请求访问服务器时,都会在HTTP请求数据中包含Cookie,服务器解析HTTP请求中的Cookie,就能由此获得关于客户的相关信息。

Cookie数据到底长啥样?打开chrome浏览器,打开豆瓣网站,按F12键进入开发者模式,如下图:

从上图可以看到,其实Cookie数据就是一串代表特殊意义的字符串,具体是由许多个键值对组成。

2 Opener与CookieJar

当我们获取一个URL时,就要使用一个opener对象,之前使用的urlopen方法是一个默认的opener,这个默认的opener是不能设置使用Cookie的,也就是说我们必须创建一个更一般的opener来处理Cookie。

在python3.x中,使用的是http.cookiejar模块来对cookie信息进行管理的,其功能简介如下:

CookieJar:管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失。

FileCookieJar (filename,delayload=None,policy=None):从CookieJar派生而来,用来创建FileCookieJar实例,检索cookie信息并将cookie存储到文件中。filename是存储cookie的文件名。delayload为True时支持延迟访问访问文件,即只有在需要时才读取文件或在文件中存储数据。

MozillaCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与Mozilla浏览器 cookies.txt兼容的FileCookieJar实例。

LWPCookieJar (filename,delayload=None,policy=None):从FileCookieJar派生而来,创建与libwww-perl标准的 Set-Cookie3 文件格式兼容的FileCookieJar实例。

其实大多数情况下,我们只用CookieJar(),如果需要和本地文件交互,就用 MozillaCookjar() 或 LWPCookieJar()。返回搜狐,查看更多

责任编辑:

python cookies是什么_Python网络爬虫之Cookie技术(一)相关推荐

  1. python sub 不区分大小写_Python网络爬虫入门篇

    1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. Python入门篇:https://www.cnblo ...

  2. python selenium 验证码识别_Python网络爬虫之如何用代码识别图片验证码

    验证码 当我们在爬取某些网站的时候,对于一些频繁请求,网站会识别你是机器还是人.如果是机器,直接不允许你访问这个网站了,直接返回404或者禁止访问. 最常见的方式就是验证码.验证码的主要功能就是区分当 ...

  3. Python开发实战案例之网络爬虫(附源码)-张子良-专题视频课程

    Python开发实战案例之网络爬虫(附源码)-35人已学习 课程介绍         课程特色: 特色1:案例驱动-围绕两大完整的Python网络爬虫实战开发案例:IT电子书下载网络爬虫和股票交易数据 ...

  4. 和移动对接短信http协议和cmpp协议那个好_python网络爬虫之HTTP原理,爬虫的基本原理,Cookies和代理介绍...

    一.HTTP基本原理 (一)URI和URL URI的全称为统一资源标志符,URL的全称为统一资源定位符.用来指定一个资源的访问方式,包括访问协议,访问路径和资源名称,从而找到需要的资源(网页的内容都是 ...

  5. python网络爬虫学习_python网络爬虫学习笔记

    介绍: 网络爬虫的名字非常有意思,英文名称web spider. 真得非常形象.蜘蛛结网为了获取食物,而我们的爬虫程序,也是为了获取网络上的资源. 这篇blog是本人学习过程中的记录.学习过程中,使用 ...

  6. python网络爬虫应用_python网络爬虫应用实战

    原标题:python网络爬虫应用实战 Python这门编程语言包罗万象,可以说掌握了python,除了一些特殊环境和高度的性能要求,你可以用它做任何事. Python作为一门脚本语言,它灵活.易用.易 ...

  7. python网络爬虫与信息提取_北京理工大学_Python网络爬虫与信息提取(一)

    学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...

  8. 优品课堂python下载_Python 网络爬虫数据采集 【优品课堂】

    资源内容: Python 网络爬虫数据采集 [优品课堂]|____9 requests HTTP编程          |____5 [录播]requests cookies 处理           ...

  9. 优品课堂python下载_Python网络爬虫数据采集【优品课堂】

    资源内容: Python网络爬虫数据采集[优品课堂]|____1.mp4|____1.mp4|____1.mp4|____1.mp4|____1Python标准库urllib应用I|____1URL解 ...

最新文章

  1. markdown常用操作(特殊字符显示、换行、字体颜色和大小、图片位置和大小)
  2. fft ocean注解
  3. 高仿国美在线底部代码实现
  4. 电脑屏保海底世界_炸弹测深出来的海底一万米,都藏有何种玄机?
  5. 19-6/28作业:100以内偶数求和
  6. 开火锅店的明星们,什么时候才能不道歉?
  7. 截短 UTF-8 字符串
  8. hibernate 查询id为空懒加载_hibernate 查询时指定查询字段、级联表的一种方式
  9. 【视频技术】ffmpeg截取图片(Mac)
  10. Windows环境下安装python+tensorflow
  11. PKIX path building failed
  12. DAY24:信息搜集
  13. P2525 Uim的情人节礼物·其之壱(入门,数学)
  14. 2012年全国医院排名(转)
  15. 无法远程连接到计算机 凭证,win10系统凭证不工作导致远程桌面连接不了的解决办法...
  16. web开发实例教程,CSS盒子模型居中方法
  17. 服务器esn和文件esn不匹配,如何获取服务器ESN
  18. lightbox图片展示效果
  19. java商城源码_java 多商户商城系统源码分享
  20. erp用php,erp为何不用php开发

热门文章

  1. 控制杂谈1 —— 控制系统上位机与下位机的分工
  2. JavaWeb细节——jstl导入eclipse报错
  3. 5、内网渗透之端口转发与代理工具总结
  4. 什么是普通股、什么是优先股
  5. 从零开始的机械臂yolov5抓取gazebo仿真(一)
  6. 【献计一刻】在每件小事中锻炼抽象思维能力
  7. 传微软近期发布IE9 转型双核血战国产浏览器
  8. 传统串口设备快速实现联网的解决方案(串口-以太网网关、Modbus网关、Modbus Poll/Slave调试软件的使用、Modbus报文数据实例分析)
  9. 鸿蒙系统智能电视用时间长了会不会卡,电视越用越卡?原来是存储满了 教你解决...
  10. python 字符串转换为json时,出现Extra data错误