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的几种标准输出重定向方式
Aug 15 Python
python监控进程脚本
Apr 12 Python
python+splinter实现12306网站刷票并自动购票流程
Sep 25 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python selenium循环登陆网站的实现
Nov 04 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
Python读写csv文件流程及异常解决
Oct 20 Python
Python实现区域填充的示例代码
Feb 03 Python
python中操作文件的模块的方法总结
Feb 04 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
如何将数据从文本导入到mysql
2006/10/09 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
javascript查询字符串参数的方法
2015/01/28 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
jQuery form插件之formDdata参数校验表单及验证后提交
2016/01/23 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
vue params、query传参使用详解
2017/09/12 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
Python字符串替换实例分析
2015/05/11 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
Python字符串格式化输出方法分析
2016/04/13 Python
Numpy 中的矩阵求逆实例
2019/08/26 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
保洁主管岗位职责
2013/11/20 职场文书
幼儿园门卫制度
2014/01/29 职场文书
《乞巧》教学反思
2014/02/27 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
IT工程师岗位职责
2014/07/04 职场文书
清洁工个人总结
2015/03/04 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
初中班主任工作随笔
2015/08/15 职场文书
慰问信(范文3篇)
2019/10/23 职场文书