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编程中线程的创建与锁的使用
Feb 28 Python
Python命令启动Web服务器实例详解
Feb 23 Python
python实现简单登陆流程的方法
Apr 22 Python
解决Pycharm下面出现No R interpreter defined的问题
Oct 29 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
简单的Python调度器Schedule详解
Aug 30 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 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
PHP中的switch语句的用法实例详解
2015/10/21 PHP
PHP 断点续传实例详解
2017/11/11 PHP
js实现拖拽 闭包函数详细介绍
2012/11/25 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
2013/04/24 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
2015/04/14 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
详解js类型判断
2018/05/22 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
浅谈React碰到v-if
2018/11/04 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python访问系统环境变量的方法
2015/04/29 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
办理生育手续介绍信
2014/01/14 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
兴趣小组活动总结
2014/05/05 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
酒店管理失职检讨书
2014/09/16 职场文书
优秀员工自荐书
2015/03/06 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
详解 TypeScript 枚举类型
2021/11/02 Javascript
如何解决php-fpm启动不了问题
2021/11/17 PHP