Python爬虫连载7-cookie的保存与读取、SSL讲解
一、cookie的保存与读取
1.cookie的保存-FileCookie.Jar
- from urllib import request,parse
- from http import cookiejar
- #创建cookiejar实例
- filename = "cookie.txt"
- cookie = cookiejar.MozillaCookieJar(filename)
- #生成cookie的管理器
- cookie_handler = request.HTTPCookieProcessor(cookie)
- #创建http请求管理器
- http_handler = request.HTTPHandler()
- #生成https管理器
- https_handler = request.HTTPHandler()
- #创建请求管理器
- opener = request.build_opener(http_handler,https_handler,cookie_handler)
-
- def login():
- """
- 负责初次登录
- 需要输入用户名密码
- :return:
- """
- url = "http://www.renren.com/PLogin.do"
- data = {
- "email":"1215217867@qq.com",
- "password":""
- }
- #把数据进行编码
- data = parse.urlencode(data)
- #创建一个请求对象
- req = request.Request(url,data=data.encode())
- #使用opener发起请求
- rep = opener.open(req)
- #保存cookie到文件
- #ignore_discard表示及时cookie将要被丢弃也要保存下来
- #ignore_expire表示如果该文件中cookie即使已经过期,保存
- cookie.save(ignore_discard=True,ignore_expires=True)
-
- def getHomePage():
- url = "http://www.renren.com/965187997/profile"
- #如果已经执行了login函数,则opener自动已经包含相应的cookie值
- rsp = opener.open(url)
-
- html = rsp.read().decode()
- with open("rsp.html","w") as f:
- f.write(html)
-
- if __name__ == "__main__":
- """
- 执行完login之后,会得到授权之后的cookie
- 我们尝试把cookie打印出来
- """
- login()
- getHomePage()
2.cookie的读取
- from urllib import request,parse
- from http import cookiejar
- #创建cookiejar实例
- cookie = cookiejar.MozillaCookieJar()
- cookie.load("cookie.txt",ignore_discard=True,ignore_expires=True)
-
- #生成cookie的管理器
- cookie_handler = request.HTTPCookieProcessor(cookie)
- #创建http请求管理器
- http_handler = request.HTTPHandler()
- #生成https管理器
- https_handler = request.HTTPHandler()
- #创建请求管理器
- opener = request.build_opener(http_handler,https_handler,cookie_handler)
-
- def login():
- """
- 负责初次登录
- 需要输入用户名密码
- :return:
- """
- url = "http://www.renren.com/PLogin.do"
- data = {
- "email":"1215217867@qq.com",
- "password":""
- }
- #把数据进行编码
- data = parse.urlencode(data)
- #创建一个请求对象
- req = request.Request(url,data=data.encode())
- #使用opener发起请求
- rep = opener.open(req)
- #保存cookie到文件
- #ignore_discard表示及时cookie将要被丢弃也要保存下来
- #ignore_expire表示如果该文件中cookie即使已经过期,保存
- cookie.save(ignore_discard=True,ignore_expires=True)
-
- def getHomePage():
- url = "http://www.renren.com/965187997/profile"
- #如果已经执行了login函数,则opener自动已经包含相应的cookie值
- rsp = opener.open(url)
-
- html = rsp.read().decode()
- with open("rsp.html","w") as f:
- f.write(html)
-
-
- if __name__ == "__main__":
- """
- 执行完login之后,会得到授权之后的cookie
- 我们尝试把cookie打印出来
- """
- # login()
- getHomePage()
改代码读取了保存的cookie文件,并且访问网页成功。
二、SSL
1.什么是SSL
(1)SSL证书就是指遵守SSL安全套阶层协议的服务器数字证书(SercureSocketLayer)
(2)该证书是由美国网景公司开发
(3)CA(CertifacateAuthority)是数字证书认证中心,是发放、管理、废除数字证书的收信人的第三方机构。
(4)遇到不信任的SSL证书,可以用代码进行忽略掉
- from urllib import request
- #导入python ssl处理模块
- import ssl
- #利用非认证上下文环境替换认证的下文环境
- ssl._create_default_https_context = ssl._create_unverified_context
- url = "https://www.12306.cn/mormhweb/"
- rsp = request.urlopen(url)
-
- html = rsp.read().decode()
-
- print(html)
三、源码
Reptitle7_1_SaveCookie.py
Reptitle7_2_LoadCookie.py
Reptitle7_3_SSLAnalysis.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle7_1_SaveCookie.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle7_2_LoadCookie.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptitle7_3_SSLAnalysis.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
Python爬虫连载7-cookie的保存与读取、SSL讲解的更多相关文章
- Python爬虫入门:Cookie的使用
大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...
- Python爬虫入门之Cookie的使用
本节我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要 ...
- Python爬虫:设置Cookie解决网站拦截并爬取蚂蚁短租
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Eastmount PS:如有需要Python学习资料的小伙伴可以加 ...
- 芝麻HTTP:Python爬虫入门之Cookie的使用
为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓 ...
- Python爬虫连载1-urllib.request和chardet包使用方式
一.参考资料 1.<Python网络数据采集>图灵工业出版社 2.<精通Python爬虫框架Scrapy>人民邮电出版社 3.[Scrapy官方教程](http://scrap ...
- Python爬虫连载5-Proxy、Cookie解析
一.ProxyHandler处理(代理服务器) 1.使用代理IP,是爬虫的常用手段 2.获取代理服务器的地址: www.xicidaili.com www.goubanjia.com 3.代理用来隐藏 ...
- Python爬虫基础之Cookie
一.Cookie会话 简单地说,cookie就是存储在用户浏览器中的一小段文本文件.Cookies是纯文本形式,它们不包含任何可执行代码.一个Web页面或服务器告之浏览器来将这些信息存储并且基于一系列 ...
- Python爬虫连载9-JS加密之“盐”、ajax请求
一.JS加密之“盐” 1.salt属性“盐":多用于密码学,比如我们的银行卡是六位密码,但是实际上在银行的系统里,我们输入密码后,会给原始的密码添加若干字符,形成更加难以破解的密码.这个过 ...
- Python爬虫连载6-cookie深入使用实例化实现自动登录
一.使用cookie登录 1.直接把cookie复制下去,然后手动放到请求头 2.http模块包含一些关于cookie的模块,通过他们我们可以自动使用cookie (1)cookieJar 管理存储c ...
随机推荐
- 梯度下降算法&线性回归算法
**机器学习的过程说白了就是让我们编写一个函数使得costfunction最小,并且此时的参数值就是最佳参数值. 定义 假设存在一个代价函数 fun:\(J\left(\theta_{0}, \the ...
- python中的strip()方法
python中字符串str的strip()方法 str.strip()就是把字符串(str)的头和尾的空格,以及位于头尾的\n \t之类给删掉. 例1: str=" python " ...
- 【剑指Offer】47、求1+2+3+...+n
题目描述: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 题解:递归实现/利用Math //利用短路 ...
- 题解 CF171A 【Mysterious numbers - 1】
又是愚人节题目qwq-- 说一下题意吧: 把第1个数翻转后加第二个数 具体思路: 1.定义变量,进行输入 int a,b; cin>>a>>b; 2.定义一个变量c,作为存储第 ...
- 共享v2射线局域网http代理方法
问题描述 默认v节点大部分是socks代理,实际使用过程中存在以下问题: 部分浏览器无法支持socks需要走http代理. 局域网内其他设备(手机.PS4等)需要配置代理. 解决方法 1.在PC托盘图 ...
- vue学习指南:第十三篇(详细) - Vue的 路由 第三篇 ( 路由的缓存 )
路由的缓存 路由缓存是 Vue组件优化的一个重要方法 为什么实现路由缓存? 为了 组件间 相互切换不会重复加载数据,影响用户体验,我们通常需要将组件的数组实现缓存,当我们点过来,在点的时候会再次发送 ...
- mysql5.6创建账户不能本地登录
1.通过xshell连接linux,命令登录mysql 2.创建一个新的库(其实创建不创建都可以) 3.创建账号权限 创建账号luffy 密码luffy 针对库luffy所有权限,允许任何人远程登录 ...
- 虚拟机中CentOS 6.5 添加扩展分区
此扩展方法要求支持LVM 1.更改虚拟机配置 虚拟机->设置->硬盘->扩展磁盘容量 fdisk -l 查看,发现硬盘空间变大了 [root@thj Desktop]# fdisk ...
- 巨杉Tech | 微服务趋势下的数据库设计与应用简析
周五(7月12日)巨杉数据库参与了由得到App主办八里庄技术沙龙活动,分享主题是关于分布式数据库架构与实战. 以下就是根据巨杉数据库现场分享的内容进行的分享实录整理. 巨杉数据库简介 巨杉,专注新一代 ...
- C#通过属性名字符串获取、设置对象属性值
之前理工项目从这个博客找到了相对应的方法:C#通过属性名字符串获取.设置对象属性值 https://www.cnblogs.com/willingtolove/p/12198871.html