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矩阵常见运算操作实例总结
Sep 29 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Python获取好友地区分布及好友性别分布情况代码详解
Jul 10 Python
python 读取修改pcap包的例子
Jul 23 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
如何解决安装python3.6.1失败
Jul 01 Python
python简单实现插入排序实例代码
Dec 16 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 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实现与ASP Banner组件相似的类
2006/10/09 PHP
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
php判断是否为json格式的方法
2014/03/04 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
javascript英文日期(有时间)选择器
2007/05/02 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
三种方式获取XMLHttpRequest对象
2014/04/21 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
基于python socketserver框架全面解析
2017/09/21 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Django中的用户身份验证示例详解
2019/08/07 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Python字符串的修改方法实例
2019/12/19 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Keras保存模型并载入模型继续训练的实现
2021/02/20 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
行政前台岗位职责
2013/12/04 职场文书
就业意向书范文
2014/04/01 职场文书
创先争优一句话承诺
2014/05/29 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
如何写辞职信
2015/05/13 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书