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 制作图片转pdf工具
Jan 30 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
Django 内置权限扩展案例详解
Mar 04 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
python 从list中随机取值的方法
Nov 16 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 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中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
密码强度检测效果实现原理与代码
2013/01/04 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
JavaScript设计模式开发中组合模式的使用教程
2016/05/18 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
vue嵌套路由与404重定向实现方法分析
2018/05/04 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
Django的信号机制详解
2017/05/05 Python
详解Django的CSRF认证实现
2018/10/09 Python
python pygame实现2048游戏
2018/11/20 Python
django的ORM模型的实现原理
2019/03/04 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
python设置环境变量的作用和实例
2019/07/09 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python序列化与数据持久化实例详解
2019/12/20 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
阿姆斯特丹城市卡:Amsterdam Pass
2019/12/01 全球购物
中国好声音广告词
2014/03/18 职场文书
工地标语大全
2014/06/18 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
2014年党员整改措施
2014/10/24 职场文书
承兑汇票延期证明
2015/06/23 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
JavaWeb实现显示mysql数据库数据
2022/03/19 Java/Android