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 strip()函数 介绍
May 24 Python
基于树莓派的语音对话机器人
Jun 17 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
Oct 24 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
python要安装在哪个盘
Jun 15 Python
python 调用API接口 获取和解析 Json数据
Sep 28 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
Python 可视化神器Plotly详解
Dec 26 Python
python获取字符串中的email
Mar 31 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
很实用的一个完整email发送程序
2006/10/09 PHP
PHP中读写文件实现代码
2011/10/20 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
php文件上传简单实现方法
2015/01/24 PHP
php发送邮件的问题详解
2015/06/22 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
python中的错误如何查看
2020/07/08 Python
人事主管岗位职责范本
2013/12/04 职场文书
挂职思想汇报
2013/12/31 职场文书
试用期员工考核制度
2014/01/22 职场文书
自我评价的范文
2014/02/02 职场文书
人力资源求职信
2014/05/25 职场文书
财务管理专业自荐书
2014/09/02 职场文书
小学师德师风整改措施
2014/10/27 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书