python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部
这两天
有小伙伴问小帅b
为什么我爬取 xx 网站的时候
不返回给我数据
而且还甩一句话给我
“系统检测到您频繁访问,请稍后再来”

小帅b看了一下他的代码
for i in range(,):
requests.get(url)
瞬间震惊了
这就感觉
被连续 fxxk 了 1w 次
你说对方受得了?

不封你 IP 封谁?
要会伪装
要想想看
人是怎么访问网站的
这次我们来说说伪装 Header

那么
接下来就是
学习python的正确姿势

当你要去爬取某个网站的数据的时候
你要想想看
如果是别人爬取你的数据
你会做什么操作
你是不是也不想
让别人随随便便就疯狂请求你的服务器
你是不是也会
采取一定的措施

比如
小帅b有一个网站
你分析到了小帅b的地址
当你想要通过 python 来爬取的时候...
恩
小帅b来写一个简单的可以被请求的例子
from flask import Flaskapp = Flask(__name__)@app.route('/getInfo')def hello_world():return "这里假装有很多数据"if __name__ == "__main__":app.run(debug=True)
ok
假设你现在分析到了小帅b的地址了
也就是可以通过 /getInfo 就可以获取到小帅b网站上的数据了
你感觉很爽
就开始请求了
url = 'http://127.0.0.1:5000/getInfo'response = requests.get(url)print(response.text)
没错
这个时候你确实获取到数据了

小帅b觉得有点不对劲了
想看看请求的 header 信息
@app.route('/getInfo')def hello_world():print(request.headers)return "这里假装有很多数据"if __name__ == "__main__":app.run(debug=True)
结果看到的 headers 信息是这样的
Host: 127.0.0.1:5000User-Agent: python-requests/2.21.0Accept-Encoding: gzip, deflateAccept: */*Connection: keep-alive
哇靠
User-Agent: python-requests/2.21.0
居然使用 python 的库来请求
你说小帅b不封你封谁呢?

所以小帅b这个时候进行判断
你就获取不到数据了
@app.route('/getInfo')def hello_world():if(str(request.headers.get('User-Agent')).startswith('python')):return "小子,使用爬虫是吧?滚你的"else:return "这里假装有很多数据"if __name__ == "__main__":app.run(debug=True)
你这个时候的请求
if __name__ == '__main__':url = 'http://127.0.0.1:5000/getInfo'response = requests.get(url)print(response.text)
得到的结果就是
小子,使用爬虫是吧?滚你的
你已经在小帅b面前暴露了
那么怎么办呢?
伪装自己呗
python 不可以访问
浏览器可以访问呀
所以你可以修改你的请求头
还记得 Fiddler(可点击)吗?
你可以先在浏览器访问
然后在抓取数据的时候获取到 Header 数据

当然你也可以使用 Chrome (可点击)的控制面板获取 Header

有了 Header 信息之后
就可以使用 requests(可点击)模块轻松获取
恩,现在的你学会假装自己是浏览器了
if __name__ == '__main__':headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}url = 'http://127.0.0.1:5000/getInfo'response = requests.get(url,headers=headers)print(response.text)
再获取一次可以发现
返回的是
这里假装有很多数据
ok,你又获取到数据了

当然
仅仅是伪装自己是浏览器还不够的
要多站在对方的角度想问题
往后
小帅b还会继续跟你扯
怎么应对反爬虫的种种策略
peace

帅b老仙
法力无边

与本文相关的文章
python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部的更多相关文章
- 【Python爬虫】听说你又闹书荒了?豆瓣读书9.0分书籍陪你过五一
说明 五一将至,又到了学习的季节.目前流行的各大书单主打的都是豆瓣8.0评分书籍,却很少有人来聊聊这9.0评分的书籍长什么样子.刚好最近学了学python爬虫,那就拿豆瓣读书来练练手. 爬虫 本来思路 ...
- Python爬虫常用小技巧之设置代理IP
设置代理IP的原因 我们在使用Python爬虫爬取一个网站时,通常会频繁访问该网站.假如一个网站它会检测某一段时间某个IP的访问次数,如果访问次数过多,它会禁止你的访问.所以你可以设置一些代理服务器来 ...
- python爬虫13 | 秒爬,这多线程爬取速度也太猛了,这次就是要让你的爬虫效率杠杠的
快 快了 啊 嘿 小老弟 想啥呢 今天这篇爬虫教程的主题就是一个字 快 想要做到秒爬 就需要知道 什么是多进程 什么是多线程 什么是协程(微线程) 你先去沏杯茶 坐下来 小帅b这就好好给你说道说道 关 ...
- Python爬虫实战——反爬策略之代理IP【无忧代理】
一般情况下,我并不建议使用自己的IP来爬取网站,而是会使用代理IP. 原因很简单:爬虫一般都有很高的访问频率,当服务器监测到某个IP以过高的访问频率在进行访问,它便会认为这个IP是一只"爬虫 ...
- Python 爬虫练习(一) 爬取国内代理ip
简单的正则表达式练习,爬取代理 ip. 仅爬取前三页,用正则匹配过滤出 ip 地址和 端口,分别作为key.value 存入 validip 字典. 如果要确定代理 ip 是否真的可用,还需要再对代理 ...
- python爬虫18 | 就算你被封了也能继续爬,使用IP代理池伪装你的IP地址,让IP飘一会
我们上次说了伪装头部 ↓ python爬虫17 | 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部 让自己的 python 爬虫假装是浏览器 小帅b主要是想让你知道 在爬取网站的时候 ...
- Python 爬虫入门(二)——爬取妹子图
Python 爬虫入门 听说你写代码没动力?本文就给你动力,爬取妹子图.如果这也没动力那就没救了. GitHub 地址: https://github.com/injetlee/Python/blob ...
- Python爬虫系列(三):requests高级耍法
昨天,我们更多的讨论了request的基础API,让我们对它有了基础的认知.学会上一课程,我们已经能写点基本的爬虫了.但是还不够,因为,很多站点是需要登录的,在站点的各个请求之间,是需要保持回话状态的 ...
- python爬虫14 | 就这么说吧,如果你不懂python多线程和线程池,那就去河边摸鱼!
你知道吗? 在我的心里 你是多么的重要 就像 恩 请允许我来一段 freestyle 你们准备好了妹油 你看 这个碗 它又大又圆 就像 这条面 它又长又宽 你们 在这里 看文章 觉得 很开心 就像 我 ...
随机推荐
- hdu 6115(LCA 暴力)
Factory Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total ...
- 洛谷P2303 [SDOi2012]Longge的问题
题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...
- RDA 升级
烧录BOOT升级方式: 1.连接 2.烧录BOOT 1)升级“bootrom_raw.bin” 99K,这种升级方式需要Tera Term 工具,按“F5” U盘升级. 编译的升级文件“RR8503 ...
- JSP-Runoob:JSP 发送邮件
ylbtech-JSP-Runoob:JSP 发送邮件 1.返回顶部 1. JSP 发送邮件 虽然使用JSP实现邮件发送功能很简单,但是需要有JavaMail API,并且需要安装JavaBean A ...
- jqxtree异步加载部门树
整体思路 A.要想实现异步加载第一次加载的是一级部门 B.加载一级部门,如果有子部门,部门前面带+号,没有子部门,部门前面没有+号(+号也就是点击可以展开) C.在sql中实现如果有子部门默认都加载一 ...
- zabbix监控kafka消费
一.Kafka监控的几个指标 1.lag:多少消息没有消费 lag=logsize-offset 2.logsize:Kafka存的消息总数 3.offset:已经消费的消息 Kafka管理工具 介绍 ...
- Android开发之Thread类分析 (转载)
转自:http://blog.csdn.net/llping2011/article/details/9706599 在我们Linux系统中创建线程函数为:pthread_create(),在Andr ...
- PCB 加投率计算实现基本原理--K最近邻算法(KNN)
PCB行业中,客户订购5000pcs,在投料时不会直接投5000pcs,因为实际在生产过程不可避免的造成PCB报废, 所以在生产前需计划多投一定比例的板板, 例:订单 量是5000pcs,加投3%,那 ...
- codevs1004四子连棋
1004 四子连棋 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白 ...
- JQuery 总结
JQuery官方网站 http://jquery.com/ 1.JQuery概念 A.Jquery是一个优秀的Javascript框架.它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器,jQu ...