反爬虫的几重措施

1.IP限制

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

如果是个人编写的爬虫,IP可能是固定的,那么发现某个IP请求过于频繁并且短时间内访问大量的页面,有爬虫的嫌疑,作为网站的管理或者运维人员,你可能就得想办法禁止这个IP地址访问你的网页了。那么也就是说这个IP发出的请求在短时间内不能再访问你的网页了,也就暂时挡住了爬虫。

2.User-Agent

User-Agent是用户访问网站时候的浏览器的标识

下面我列出了常见的几种正常的系统的User-Agent大家可以参考一下,

并且在实际发生的时候,根据浏览器的不同,还有各种其他的User-Agent,我举几个例子方便大家理解:

safari 5.1 – MAC

User-Agent:Mozilla/5.0 (Macintosh; U; IntelMac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1Safari/534.50

Firefox 4.0.1 – MAC

User-Agent: Mozilla/5.0 (Macintosh; IntelMac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1

Firefox 4.0.1 – Windows

User-Agent:Mozilla/5.0 (Windows NT 6.1;rv:2.0.1) Gecko/20100101 Firefox/4.0.1

同样的也有很多的合法的User-Agent,只要用户访问不是正常的User-Agent极有可能是爬虫再访问,这样你就可以针对用户的User-Agent进行限制了。

3、 验证码反爬虫

这个办法也是相当古老并且相当的有效果,如果一个爬虫要解释一个验证码中的内容,这在以前通过简单的图像识别是可以完成的,但是就现在来讲,验证码的干扰线,噪点都很多,甚至还出现了人类都难以认识的验证码(某二三零六)。

4.Ajax异步加载

5.Noscript标签的使用

<noscript>标签是在浏览器(或者用户浏览标识),没有启动脚本支持的情况下触发的标签,在低级爬虫中,基本都没有配置js引擎,通常这种方式和Ajax异步加载同时使用。用于保护自己不想让爬虫接触的信息。

6.Cookie限制

第一次打开网页会生成一个随机cookie,如果再次打开网页这个cookie不存在,那么再次设置,第三次打开仍然不存在,这就非常有可能是爬虫在工作了。很简单,在三番屡次没有带有该带的cookie,就禁止访问。

爬虫编写注意事项

在这一部分,笔者希望就自己的经验给大家编写爬虫提供比较可行的建议,也为大家提一个醒:

1.道德问题,是否遵守robots协议;

2.小心不要出现卡死在死循环中,尽量使用urlparser去解析分离url决定如何处理,如果简单的想当然的分析url很容易出现死循环的问题;

3.单页面响应超时设置,默认是200秒,建议调短,在网络允许的条件下,找到一个平衡点,避免所有的爬虫线程都在等待200,结果出现效率降低;

4.高效准确的判重模式,如果判重出现问题,就会造成访问大量已经访问过的页面浪费时间;

5.可以采用先下载,后分析的方法,加快爬虫速度;

6.在异步编程的时候要注意资源死锁问题;

7.定位元素要精准(xpath)尽量避免dirty data。

希望大家提出自己的意见,本系列大多数时间都在从微观的角度讲爬虫各个部件的解决方案。

Python爬虫开发:反爬虫措施以及爬虫编写注意事项相关推荐

  1. python爬虫常见反爬措施_爬虫常见的反爬措施有哪些

    爬虫常见的反爬措施有三种: 1.header头部信息 解决方法: 加User-Agent值: 如果不加header头,部分网站服务器判断不到用户的访问来源,所以会返回一个404错误来告知你是一个爬虫, ...

  2. python爬虫开发与项目实战pdf_Python爬虫开发与项目实战PDF高清文档下载

    随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原 ...

  3. python爬虫开发环境中几个爬虫库的主要用途_分分钟了解Python爬虫

    一:Scrapy框架 在python爬虫时我们需要使用Scrapy框架,来提取结构化数据,他是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据 ...

  4. python客户端开发自行车租赁系统_爬虫获取mobike共享单车信息

    背景:端午节假期的时候参加了学校的数学建模比赛,题目是关于共享单车的供需匹配问题,需要获得共享单车的数量和时空分布情况. 在苦苦找寻数据无果的情况下决定自己用爬虫对天津地区的mobike进行统计. 在 ...

  5. python自动化开发-[第二十三天]-初识爬虫

    今日概要: 1.爬汽车之家的新闻资讯 2.爬github和chouti 3.requests和beautifulsoup 4.轮询和长轮询 5.django request.POST和request. ...

  6. python能开发公众号吗_python如何编写公众号

    python编写公众号的方法:首先运行cmd,输入[pip install werobot]安装WeRoBot框架:然后打开ide,在项目目录下打开cmd输入[python app.py]并运行:最后 ...

  7. (第42册)Python项目案例开发从入门到实战——爬虫、游戏和机器学习(第2版) 夏敏捷 郑秋生 尚展垒著

    本书由Python基础开发入手,延伸至爬虫技术开发.游戏开发.人工智能开发.网络应用开发.图像处理和可视化开发6个Python经典开发方向: 全书共提供25个项目案例,以项目驱动方式展开各知识点的讲解 ...

  8. 神箭手-云爬虫开发平台

    神箭手-云爬虫开发平台 神箭手-云爬虫开发平台 posted on 2016-07-22 17:55 lexus 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblo ...

  9. python适合做后端开发吗-Python后端开发是什么职位?

    阶段一:Python开发基础 Python全栈开发与人工智能之Python开发基础知识学习内容包括:Python基础语法.数据类型.字符编码.文件操作.函数.装饰器.迭代器.内置方法.常用模块等. 阶 ...

最新文章

  1. 前台Vue、后台Django、设置axios解决csrf_token问题
  2. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
  3. 原生态Vim使用快捷键
  4. linux服务器没网情况下手动安装软件几个方法
  5. H5新增API_geoLocation
  6. aix磁盘挂载到linux,AIX下文件系统挂载点相互调换方案
  7. 第四次学习记录(ROS)
  8. 三阶交调截取点的测量
  9. java检测网站死链,网站死链检测工具
  10. word文档页码不连续怎么弄
  11. 数据分析师是做什么的?数据分析师岗位职责
  12. Code Runner使用说明(快速运行调试代码,无需配置繁杂的环境)
  13. 智能PID软件-AVEVA Diagrams设备符号导入
  14. 到底多大并发才算高并发?一文带你全面认识高并发!
  15. 基于MS的氢键分析脚本介绍
  16. flexpaper组件中关于隐藏真实的swf 地址下载
  17. 史上最被低估的神级学科,看完忍不住感慨“它”也太重要了!
  18. BUUCTF RE WP31-32 [WUSTCTF2020]level1、[GWCTF 2019]xxor
  19. DC入门教程(二)——综合的整体流程
  20. 在Oracle中执行动态SQL的几种方法------转载

热门文章

  1. python-函数的多值传参
  2. 数据加密:RSA 密钥
  3. Sql server 数据转到 Mysql 数据库
  4. Oracle数据库重启后密码失效的问题(r12笔记第91天)
  5. Exchange 2013 SP1部署系列7:发送连接器的配置
  6. 汇编语言---函数调用栈
  7. Linux上监控tomcat down掉后自动重启tomcat
  8. Nginx根据路径设置静态资源
  9. Tomcat8史上最全优化实践
  10. Docker知识体系--从容器基础-微服务-DevOps-实战演习-Kubernetes简介-KBS基础架构-KBS核心组件-KBS集群