python爬虫 模拟登录人人网过程解析


Posted in Python onJuly 31, 2019

requests 提供了一个叫做session类,来实现客户端和服务端的会话保持

使用方法

1.实例化一个session对象

2.让session发送get或者post请求

session = requests.session()
session.get(url,headers)

下面就用人人网来实战一下

# coding=utf-8
import requests
session = requests.session()
# 登录的表单url
post_url = "http://www.renren.com/PLogin.do"
post_data = {"email": "your_email", "password": "your_password"}
headers = {
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
}
# 使用session发送post请求,cookie保存在其中
session.post(post_url, data=post_data, headers=headers)
# 在使用session进行请求登陆之后才能访问的地址
# 这是个人首页url
r = session.get("http://www.renren.com/327550088/profile", headers=headers)
# 保存页面到本地
with open("renren1.html", "w", encoding="utf-8") as f:
  f.write(r.content.decode('utf-8'))

就这么简单,模拟登录上人人网并且获取了个人首页信息页面保存到本地。

其实网站记录登录状态就是通过cookie里面携带的信息,如果我们发送请求的时候带上登录的cookie能不能够访问到只有登录才能访问的页面,当然是可以的

请看代码

# coding=utf-8
import requests
headers = {
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36",
  "Cookie":"你的登录cookie"
}
r = requests.get("http://www.renren.com/327550088/profile",headers=headers)
#保存页面
with open("renren2.html","w",encoding="utf-8") as f:
  f.write(r.content.decode())

可以看到, Cookie 可以放在 headers 中,其实 requests 中也有一个参数用来传递cookie,这个参数就是 cookies

请看代码

# 字典生成器的用法
cookies = {i.split("=")[0]:i.split("=")[1] for i in cookies.split("; ")}
print(cookies)
r = requests.get("http://www.renren.com/327550088/profile",headers=headers,cookies=cookies)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python二分法实现实例
Nov 21 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
python 爬虫出现403禁止访问错误详解
Mar 11 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
python 实现单通道转3通道
Dec 03 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
plt.figure()参数使用详解及运行演示
Jan 08 Python
用Python实现Newton插值法
Apr 17 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 #Python
Django实现跨域的2种方法
Jul 31 #Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 #Python
在VS2017中用C#调用python脚本的实现
Jul 31 #Python
使用pip安装python库的多种方式
Jul 31 #Python
python实现几种归一化方法(Normalization Method)
Jul 31 #Python
python Django编写接口并用Jmeter测试的方法
Jul 31 #Python
You might like
第五节--克隆
2006/11/16 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
浅析php变量作用域的一些问题
2013/08/08 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
addEventListener 的用法示例介绍
2014/05/07 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
bootstrap table实例详解
2017/01/06 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
Python编程求质数实例代码
2018/01/31 Python
便捷提取python导入包的属性方法
2018/10/15 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
python中实现控制小数点位数的方法
2019/01/24 Python
通过python3实现投票功能代码实例
2019/09/26 Python
python plotly画柱状图代码实例
2019/12/13 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
GEOX鞋美国官方网站:意大利会呼吸的鞋
2017/07/12 全球购物
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
幼儿园毕业典礼主持词
2014/03/21 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
学习经验交流会策划书
2015/11/02 职场文书
机械生产实习心得体会
2016/01/22 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL