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的发展史
Sep 26 Python
Python中使用装饰器时需要注意的一些问题
May 11 Python
Python WXPY实现微信监控报警功能的代码
Oct 20 Python
Python读取properties配置文件操作示例
Mar 29 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
通过python连接Linux命令行代码实例
Feb 18 Python
python topk()函数求最大和最小值实例
Apr 02 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 Python
Python实现单例模式的5种方法
Jun 15 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
利用JS轻松实现获取表单数据
2016/12/06 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
原生js实现分页效果
2020/09/23 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
Python中输出ASCII大文字、艺术字、字符字小技巧
2015/04/28 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
冰淇淋店的创业计划书
2014/02/07 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
梅花魂教学反思
2014/04/25 职场文书
财务工作个人总结
2015/02/27 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL