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中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
Python编程之gui程序实现简单文件浏览器代码
Dec 08 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
基于Python实现拆分和合并GIF动态图
Oct 22 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
Feb 26 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
Python学习开发之图形用户界面详解
Aug 23 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
cache_lite试用
2007/02/14 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
php查看网页源代码的方法
2015/03/13 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
2019/08/27 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
javascript二维数组转置实例
2015/01/22 Javascript
easyui validatebox验证
2016/04/29 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
微信小程序 轮播图swiper详解及实例(源码下载)
2017/01/11 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
Python下的Mysql模块MySQLdb安装详解
2014/04/09 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
python中的变量如何开辟内存
2018/06/26 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
简单的Python人脸识别系统
2020/07/14 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
2014植树节活动总结
2014/03/11 职场文书
现金出纳岗位职责
2014/03/15 职场文书
辩论赛新闻稿
2015/07/17 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL