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操作ie登陆土豆网的方法
May 09 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
Python continue继续循环用法总结
Jun 10 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
详解重置Django migration的常见方式
Feb 15 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
django 数据库返回queryset实现封装为字典
May 19 Python
Pandas的Apply函数具体使用
Jul 21 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
浅谈laravel5.5 belongsToMany自身的正确用法
2019/10/17 PHP
基于javascript滚动图片具体实现
2013/11/18 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
使用Node.js为其他程序编写扩展的基本方法
2015/06/23 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
atom-design(Vue.js移动端组件库)手势组件使用教程
2019/05/16 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
微信小程序转发事件实现解析
2019/10/22 Javascript
jQuery 淡入/淡出效果函数用法分析
2020/05/19 jQuery
Nuxt的路由动画效果案例
2020/11/06 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
详解Python中的日志模块logging
2015/06/19 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
基于Python函数和变量名解析
2019/07/19 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
自我鉴定200字
2013/10/28 职场文书
机电一体化专业推荐信
2013/12/03 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
生物技术专业求职信
2014/06/10 职场文书
学习考察心得体会
2014/09/04 职场文书
教师节座谈会主持词
2015/07/03 职场文书
Pytorch实现图像识别之数字识别(附详细注释)
2021/05/11 Python
对讲机的最大通讯距离是多少
2022/02/18 无线电
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB