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 Flask
app = 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:5000
User-Agent: python-requests/2.21.0
Accept-Encoding: gzip, deflate
Accept: */*
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老仙
法力无边
与本文相关的文章
最新文章
- 登陆后设置cookie的方法
- reverseajax(comet) socket 杂记
- T恤
- SDUT 3311 数据结构实验之串三:KMP应用
- CodeIgniter 常量ENVIRONMENT设置要注意的地方
- Svn正确的使用方法
- Jquery UI dialog 详解 (中文)
- Visual Studio 自定义项目或工程模板
- python可视化--matplotlib
- jsPlumb之流程图项目总结及实例
- C++中指向类的指针
- 应对不同格式 轻松转换PDF、WORD、PPT、TXT常用文件
- (8)Microsoft office Word 2013版本操作入门_制作传单海报
- 微信小程序开发之初探
- 【asp.net core mvc + angular6实战】 - 1. 环境搭建
- bzoj千题计划316:bzoj3173: [Tjoi2013]最长上升子序列(二分+树状数组)
- JavaScript中值类型与引用类型
- ubuntu密码正确,却不能登录图形界面
- socket shutdown 与 close 函数 的区别
- CentOS7编译安装PostgreSQL