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实现的文件同步服务器实例
Jun 02 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
python中执行shell的两种方法总结
Jan 10 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
解决python读取几千万行的大表内存问题
Jun 26 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
python中reader的next用法
Jul 24 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
python 字典的打印实现
Sep 26 Python
基于Python中的yield表达式介绍
Nov 19 Python
Flask中sqlalchemy模块的实例用法
Aug 02 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数组合并与拆分实例分析
2015/06/12 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
类之Prototype.js学习
2007/06/13 Javascript
JSON.stringify 语法实例讲解
2012/03/14 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
傻瓜式vuex语法糖kiss-vuex整理
2018/12/21 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
[05:36]DOTA2 2015国际邀请赛中国区预选赛第四日TOP10
2015/05/29 DOTA
django 实现电子支付功能的示例代码
2018/07/25 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
工程预算与管理应届生求职信
2013/10/06 职场文书
门卫工作岗位职责
2013/12/17 职场文书
致短跑运动员广播稿
2014/01/09 职场文书
文艺晚会主持词
2014/03/24 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
精神文明建设标语
2014/06/16 职场文书
嘉宾邀请函
2015/01/31 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python