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 数据加密代码
Dec 24 Python
Python标准库内置函数complex介绍
Nov 25 Python
python分析网页上所有超链接的方法
May 08 Python
python发送邮件功能实现代码
Jul 15 Python
Python中如何获取类属性的列表
Dec 26 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
python实现视频分帧效果
May 31 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
python2.7使用scapy发送syn实例
May 05 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 Python
python实现局部图像放大
Nov 17 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
解决控件遮挡问题:关于有窗口元素和无窗口元素
2007/01/28 PHP
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
PHP 字符串 小常识
2009/06/05 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
jQuery选择器源码解读(四):tokenize方法的Expr.preFilter
2015/03/31 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
python黑魔法之参数传递
2016/02/12 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
python线程池threadpool实现篇
2018/04/27 Python
python安装twisted的问题解析
2018/08/21 Python
Python用5行代码写一个自定义简单二维码
2018/10/21 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
中科方德软件测试面试题
2016/04/21 面试题
项目合作协议书
2014/09/23 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
求职自我评价范文
2015/03/09 职场文书