有时候我们些代码是总发此疑惑?

为什么别人采集 xx 网站的时候能成功,而我却总是不返回给数据

出现这种原因时往往是我们没有给够伪装, 被识别了出来~

就像人,你出门肯定是要穿衣服的对不,如果你不穿!

走在外面,肯定是最显眼的一个,不抓你抓谁

还有一种就是明明我之前运行成功了,为什么我现在再次运行时就不行了呢~

而且还甩一句话给我 “系统检测到您频繁访问,请稍后再来”

好啦!现在咋们正经的来介绍一下面对此种情况该如何处理~

要会伪装,要想想看,人是怎么访问网站的

这次我们来说说伪装 Header ,当你要去爬取某个网站的数据的时候

你要想想看,如果是别人爬取你的数据,你会做什么操作

你是不是也不想,让别人随随便便就疯狂请求你的服务器

你是不是也会,采取一定的措施

比如,我有一个网站,你分析到了我的地址

当你想要通过 python 来爬取的时候…

这边我来写一个简单的可以被请求的例子

from flask import Flask

app = Flask(__name__)

@app.route('/getInfo')
def hello_world():
return "这里假装有很多数据" if __name__ == "__main__":
app.run(debug=True)

ok ,假设你现在分析到了我的地址了,

也就是可以通过 /getInfo 就可以获取到数据了

你感觉很爽,就开始请求了

 url = 'http://127.0.0.1:5000/getInfo'
response = requests.get(url)
print(response.text)

没错,这个时候你确实获取到数据了

但是!我觉得有点不对劲了,想看看请求的 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 的库来请求,你说我不封你封谁呢?

所以我这个时候进行判断,就获取不到数据了

@app.route('/getInfo')
def hello_world():
if(str(request.headers.get('User-Agent')).startswith('python')):
return "系统检测到您频繁访问,请稍后再来"
else:
return "这里假装有很多数据"
欢迎加入白嫖Q群:660193417 ### 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)

得到的结果就是

“系统检测到您频繁访问,请稍后再来”

你已经在我面前暴露了,想重新再来,那么怎么办呢?

伪装自己呗,python 不可以访问

浏览器可以访问呀,所以你可以修改你的请求头

先在浏览器访问,然后在抓取数据的时候获取到 Header 数据

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


有了 Header 信息之后,就可以使用 requests模块轻松获取

恩,现在的你学会假装自己是浏览器了

欢迎加入白嫖Q群:660193417 ###
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,你又获取到数据了

好啦,这篇文章就到这里啦~对你有帮助就点赞收藏一下吧!

我是小熊猫,咱下篇文章见

不存在的!python说不给数据的浏览器是不存在的!的更多相关文章

  1. 使用Python解析JSON数据的基本方法

    这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下:     ----------------------------------- ...

  2. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

  3. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  4. Windows下Python读取GRIB数据

    之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...

  5. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  6. 用Python浅析股票数据

    用Python浅析股票数据 本文将使用Python来可视化股票数据,比如绘制K线图,并且探究各项指标的含义和关系,最后使用移动平均线方法初探投资策略. 数据导入 这里将股票数据存储在stockData ...

  7. Python读取JSON数据,并解决字符集不匹配问题

    今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子. – 思路如下 从一个返回JSON天气数据的网站获取到目标JSON数据串 使用Python解析出需要的部分 写入到本地文件,供其 ...

  8. 使用 python 处理 nc 数据

    前言 这两天帮一个朋友处理了些 nc 数据,本以为很简单的事情,没想到里面涉及到了很多的细节和坑,无论是"知难行易"还是"知易行难"都不能充分的说明问题,还是& ...

  9. 【转】Python——plot可视化数据,作业8

    Python——plot可视化数据,作业8(python programming) subject1k和subject1v的形状相同 # -*- coding: utf-8 -*- import sc ...

随机推荐

  1. SSM整合_年轻人的第一个增删改查_基础环境搭建

    写在前面 SSM整合_年轻人的第一个增删改查_基础环境搭建 SSM整合_年轻人的第一个增删改查_查找 SSM整合_年轻人的第一个增删改查_新增 SSM整合_年轻人的第一个增删改查_修改 SSM整合_年 ...

  2. 基于 Redis 分布式锁

    1.主流分布式锁实现方案 基于数据库实现分布式锁 基于缓存(redis 等) 基于 Zookeeper 2.根据实现方式分类 : 类 CAS 自旋式分布式锁:询问的方式,类似 java 并发编程中的线 ...

  3. 记一次sql注入的解决方案

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 本文在公众号文章已同步,还有各种一线大厂面试原题.我的学习系列笔记. 今天业务提了个模糊查询,一听就知道这种问题有坑,肯定涉及到sql注入, ...

  4. Linux操作系统基本知识

    1.Linux开发环境 2.GCC 2.1GCC工作流程 预处理:只运行 C 预编译器. 宏去掉了,注释没有了 汇编 编译 链接 2.2GCC常用参数选择 选项 解释 -ansi 只支持 ANSI 标 ...

  5. 老生常谈系列之Aop--AspectJ

    老生常谈系列之Aop--AspectJ 这篇文章的目的是大概讲解AspectJ是什么,所以这个文章会花比较长的篇幅去解释一些概念(这对于日常开发来说没一点卵用,但我就是想写),本文主要参考Aspect ...

  6. Django学习——图书管理系统图书修改、orm常用和非常用字段(了解)、 orm字段参数(了解)、字段关系(了解)、手动创建第三张表、Meta元信息、原生SQL、Django与ajax(入门)

    1 图书管理系统图书修改 1.1 views 修改图书获取id的两种方案 1 <input type="hidden" name="id" value=& ...

  7. sklearn机器学习实战-简单线性回归

    记录下学习使用sklearn,将使用sklearn实现机器学习大部分内容 基于scikit-learn机器学习(第2版)这本书,和scikit-learn中文社区 简单线性回归 首先,最简单的线性回归 ...

  8. 用Docker打包Python运行环境

    虽然Docker作为部署环境打包镜像的工具,和我的科研并没有直接的关系.但我觉得在项目中运用Docker来打包环境依赖也可以大大提高工作效率,于是准备专门学习一下Docker. 1. Docker基础 ...

  9. kernel heap bypass smep,smap && 劫持modprobe_path

    kernel heap bypass smep,smap && 劫持modprobe_path exp1 smep:smep即用户数据不可执行,当 CPU 处于 ring0 模式时,执 ...

  10. DEDECMS登录后台,无法连接数据库的原因

    在CMS的网页模块中,当迁移网站出现后台无法登录的时候 最可能的情况有下列几种: 1. 数据库服务器宕机.如果是云上的数据库时,需要联系客服进行解决.是有自己的搭建的数据库,需要查看服务是否正常启动 ...