Python爬虫通过替换http request header来欺骗浏览器实现登录功能


Posted in Python onJanuary 07, 2018

以豆瓣为例,访问https://www.douban.com/contacts/list 来查看自己关注的人,要登录才能查看。

如果用requests.get()方法获取这个http,没登录只能抓取回一个登录界面,所以我们要用Python登录网站才能抓取想要的网页。

一个简便的方法就是自己在浏览器上登录好,然后通过下图方法(Chrome为例),找到自己的Cookie和User-Agent,然后发送request时用这复制来的header替换掉待发送的request以达到登录的目的,server端会凭这个认为你是已经登录的用户。

Python爬虫通过替换http request header来欺骗浏览器实现登录功能

代码如下:

import requests
headers = {
 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36',
 'Cookie':'gr_user_id=1f9ea7ea-462a-4a6f-9d55-156631fc6d45; bid=vPYpmmD30-k; ll="118282"; ue="codin; __utmz=30149280.1499577720.27.14.utmcsr=douban.com|utmccn=(referral)|utmcmd=referral|utmcct=/doulist/240962/; __utmv=30149280.3049; _vwo_uuid_v2=F04099A9dd; viewed="27607246_26356432"; ap=1; ps=y; push_noty_num=0; push_doumail_num=0; dbcl2="30496987:gZxPfTZW4y0"; ck=13ey; _pk_ref.100001.8cb4=%5B%22%22%2C%22%22%2C1515153574%2C%22https%3A%2F%2Fbook.douban.com%2Fmine%22%5D; __utma=30149280.833870293.1473539740.1514800523.1515153574.50; __utmc=30149280; _pk_id.100001.8cb4=255d8377ad92c57e.1473520329.20.1515153606.1514628010.'
} #替换成自己的cookie
r = requests.get('https://www.douban.com/contacts/list', headers = headers)
print(r.text)

总结

以上所述是小编个大家介绍的Python爬虫通过替换http request header来欺骗浏览器实现登录 ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
python进阶教程之动态类型详解
Aug 30 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
Oct 11 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
Python中pymysql 模块的使用详解
Aug 12 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
python中round函数如何使用
Jun 19 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 #Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 #Python
用python实现的线程池实例代码
Jan 06 #Python
pip matplotlib报错equired packages can not be built解决
Jan 06 #Python
Python实现的朴素贝叶斯分类器示例
Jan 06 #Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 #Python
Python爬虫中urllib库的进阶学习
Jan 05 #Python
You might like
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
php5.2时间相差8小时
2007/01/15 PHP
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
用js实现随机返回数组的一个元素
2007/08/13 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
使用Python实现音频双通道分离
2020/12/25 Python
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
Solaris操作系统的线程机制
2012/12/23 面试题
八一建军节感言
2014/02/28 职场文书
室内趣味活动方案
2014/08/24 职场文书
幼儿园小班个人总结
2015/02/12 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
python Django框架快速入门教程(后台管理)
2021/07/21 Python
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis