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使用PIL库实现验证码图片的方法
Mar 11 Python
python发送邮件功能实现代码
Jul 15 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
对Python _取log的几种方式小结
Jul 25 Python
详解Python self 参数
Aug 30 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
为什么相对PHP黑python的更少
Jun 21 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
详解Python中import机制
Sep 11 Python
Python爬虫之Selenium库的使用方法
Jan 03 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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 代码优化的42条建议 推荐
2009/09/25 PHP
PHPwind整合最土系统用户同步登录实现方法
2010/12/08 PHP
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
Python中正则表达式详解
2017/05/17 Python
Python实现k-means算法
2018/02/23 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
工程业务员岗位职责
2013/12/31 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
大专会计自我鉴定
2014/02/06 职场文书
工会趣味活动方案
2014/08/18 职场文书
委托证明书
2014/09/17 职场文书
文艺部部长竞选稿
2015/11/21 职场文书