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 20 Python
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
Python模块、包(Package)概念与用法分析
May 31 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Python打印不合法的文件名
Jul 31 Python
python实现AdaBoost算法的示例
Oct 03 Python
python多线程爬取西刺代理的示例代码
Jan 30 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
打造计数器DIY三步曲(下)
2006/10/09 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php解析json数据实例
2014/08/19 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
2016/11/16 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
2014/10/20 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
JS中的回调函数实例浅析
2018/03/21 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
js通过canvas生成图片缩略图
2020/10/02 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
以下的初始化有什么区别
2013/12/16 面试题
海量信息软件测试笔试题
2015/08/08 面试题
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
销售员岗位职责
2014/06/09 职场文书
公司踏青活动方案
2014/08/16 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
事业单位年度考核评语
2014/12/31 职场文书