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 你们准备好了妹油 你看 这个碗 它又大又圆 就像 这条面 它又长又宽 你们 在这里 看文章 觉得 很开心 就像 我 ...
随机推荐
- JpGraph中文乱码问题解决
JpGraph是一个PHP的图形类库,可以方便地生成各种柱状图,饼图,折线图等等,而且还可以方便地加文字.但是,中文的情况就稍微麻烦了一点.在JpGraph中默认是要把字符串转成utf8的,但是如果你 ...
- 删除svn
去掉文件下所有的.svn - CSDN博客 https://blog.csdn.net/arui_email/article/details/9055645 FOR /r D:\testsvn\p ...
- Android开发常用框架汇总
作为一名程序猿,好的工具会让你在搬运工的道路上越走越远.以下框架是AC在开发过程中经常会使用到的一些好的框架.列在这里做一个小小的总结,包含但不限于此. 响应式编程 RxJava https://gi ...
- 【Codevs3567】宫廷守卫
Position: http://codevs.cn/problem/3567/ Description 从前有一个王国,这个王国的城堡是一个矩形,被分为M×N个方格.一些方格是墙,而另一些是空地.这 ...
- tp 3.2 组合查询, 字符串模式查询
$User = M("User"); // 实例化User对象 $map['id'] = array('neq',1); $map['name'] = 'ok'; $map['_s ...
- JavaScript学习四
2019-06-01 09:09:23 坚持,加油!!! 函数的学习 <html> <head> <script type="text/javascript&q ...
- 大数据插入Excel报错处理
发现问题: 最近运行程序时,发现了一个问题,就是在导出excel时,报了一下错误 分析问题: 原来是由于NPOI这个动态库导致的,然后看了下版本,发现是1.2.5.然后百度了下,发现这个版本的NPOI ...
- [ AHOI 2008 ] Meet
\(\\\) \(Description\) 一棵\(N\)个节点的树,每条边权都为\(1\). \(M\)组询问,每次给出三个点\(A_i,B_i,C_i\),求从三个点分别出发,移动到同一个点的路 ...
- [ SDOI 2009 ] HH的项链 & [ HEOI 2012 ] 采花
\(\\\) \(Description\) 给出一个长为\(N\)的序列,\(M\)次询问区间\([L_i,R_i]\)内不同数字的个数. \(N\in [1,5\times 10^4]\),\(M ...
- 如何扒取一个网站的HTML和CSS源码
一个好的前端开发,当看到一个很炫的页面的时候会本着学习的心态,想知道网站的源码.以下内容只是为了大家更好的学习,拒绝抄袭,支持正版. 1 首先我们要有一个chrome浏览器 2 在本地创建相关文件夹 ...