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自定义类并使用的方法
May 07 Python
Python中的一些陷阱与技巧小结
Jul 10 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Python探索之创建二叉树
Oct 25 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
python实现爬取图书封面
Jul 05 Python
python文档字符串(函数使用说明)使用详解
Jul 30 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
python统计字符串中字母出现次数代码实例
Mar 02 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
用PHP+MySql编写聊天室
2006/10/09 PHP
php 无法载入mysql扩展
2010/03/12 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
thinkPHP5.0框架整体架构总览【应用,模块,MVC,驱动,行为,命名空间等】
2017/03/25 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
js自动生成对象的属性示例代码
2013/10/28 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
Python文本相似性计算之编辑距离详解
2016/11/28 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python实现某论坛自动签到功能
2019/08/20 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
一套软件开发工程师笔试题
2015/05/18 面试题
售后求职信范文
2014/03/15 职场文书
安全宣传标语口号
2014/06/06 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
酒店管理求职信
2014/06/09 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
Python time库的时间时钟处理
2021/05/02 Python
详解Flask开发技巧之异常处理
2021/06/15 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python