python爬虫--爬虫与反爬
爬虫与反爬
爬虫:自动获取网站数据的程序,关键是批量的获取。
反爬虫:使用技术手段防止爬虫程序的方法
误伤:反爬技术将普通用户识别为爬虫,从而限制其访问,如果误伤过高,反爬效果再好也不能使用(例如封ip,只会限制ip在某段时间内不能访问)
成本:反爬虫需要的人力和机器成本
拦截:成功拦截爬虫,一般拦截率越高,误伤率越高
反爬虫1
爬虫:对网站的数据感兴趣,着手分析网络请求,用Scrapy写爬虫爬取网站数据
网站:后台监控发现请求中的User-Agent都是python,直接限制访问(不能封ip)
反爬虫2
爬虫:通过在请求头中传递User-Agent参数模拟浏览器请求,可以用UA池
网站:后台监控发现同一ip在某时间段内请求过于频繁,直接限制访问(不能封ip)
反爬虫3
爬虫:在原来的基础上,再通过ip代理向网站发起请求,可以用代理池
网站:后台监控发现ip发生变化,但某一时间段内的请求量过大,对服务器造成过大压力,网站中某些数据直接要求登录才能访问
反爬虫4
爬虫:注册账号,每次请求携带cookie或者token值
网站:健全账号体系,用户只能访问好友信息,非好友信息不能访问,或只能访问部分信息
反爬虫5
爬虫:注册多个账号,多个账号联合爬取,设置程序,每个账号每天固定添加好友,但是养号是个相对耗时的过程
网站:后台监控发现请求过于频繁,为避免服务器压力过大,进一步加剧ip访问频率限制
反爬虫6
爬虫:模拟人去请求,限制请求速度,让代码睡几秒
网站:后台监控到ip访问时间段过长,例如一天24小时都在有规律地请求,弹出验证码
反爬虫7
爬虫:通过各种手段识别验证码(建议使用打码平台,充钱,自己去研究识别验证码太费时,时效性也太差)
网站:增加动态网站,数据通过js动态加载,增加网络分析复杂度,或者发现大量请求时只请求html,而不请求image和css以及js,亦或者直接返回假数据给爬虫
反爬虫8
爬虫:通过正常请求去爬取数据,但有些数据看不到,数据是动态加载的,考虑发了ajax请求
网站:不在前端正常显示
反爬虫9
爬虫:通过一些反爬手段去爬取数据,但得到的不是正常的数据,网站应该是做了某种手段的加密
网站:把内容进行加密
反爬虫10
爬虫:通过selenium和phantomjs(无界面浏览器)完全模拟浏览器操作,例如滑动验证等
网站:......
python爬虫--爬虫与反爬的更多相关文章
- python爬虫之字体反爬
一.什么是字体反爬? 字体反爬就是将关键性数据对应于其他Unicode编码,浏览器使用该页面自带的字体文件加载关键性数据,正常显示,而当我们将数据进行复制粘贴.爬取操作时,使用的还是标准的Unicod ...
- Python爬虫入门教程 62-100 30岁了,想找点文献提高自己,还被反爬了,Python搞起,反爬第2篇
学术搜索 学习理论的知识少不了去检索文献,好多文献为你的实操提供了合理的支撑,我所在的大学内网默认是有知网账户的,非常NICE 今天要完成的网站是 http://ac.scmor.com/ Googl ...
- python网页爬虫开发之五-反爬
1.头信息检查是否频繁相同 随机产生一个headers, #user_agent 集合 user_agent_list = [ 'Mozilla/5.0 (Windows NT 6.1; WOW64 ...
- 【Python3爬虫】突破反爬之应对前端反调试手段
一.前言 在我们爬取某些网站的时候,会想要打开 DevTools 查看元素或者抓包分析,但按下 F12 的时候,却出现了下面这一幕: 此时网页暂停加载,自动跳转到 Source 页面并打开了一个 ...
- Python爬虫入门教程 61-100 写个爬虫碰到反爬了,动手破坏它!
python3爬虫遇到了反爬 当你兴冲冲的打开一个网页,发现里面的资源好棒,能批量下载就好了,然后感谢写个爬虫down一下,结果,一顿操作之后,发现网站竟然有反爬措施,尴尬了. 接下来的几篇文章,我们 ...
- python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题
python爬虫---详解爬虫分类,HTTP和HTTPS的区别,证书加密,反爬机制和反反爬策略,requests模块的使用,常见的问题 一丶爬虫概述 通过编写程序'模拟浏览器'上网,然后通 ...
- 04 Python网络爬虫 <<爬取get/post请求的页面数据>>之requests模块
一. urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib ...
- 04.Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
- Python网络爬虫之requests模块(1)
引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档 ...
随机推荐
- 性能监视器PerfMon v2.0 是一个流氓的汉化版
最近在部署一台新设备时,由于懒得翻墙用google下载软件,由一次中了坑.百度搜索出来的这个<性能监视器 v2.0 汉化版>,安装了之后,设备会时不时自动弹出广告.反编译分析了一下,的确就 ...
- 深入理解跳表在Redis中的应用
本文首发于:深入理解跳表在Redis中的应用微信公众号:后端技术指南针持续输出干货 欢迎关注 前面写了一篇关于跳表基本原理和特性的文章,本次继续介绍跳表的概率平衡和工程实现, 跳表在Redis.Lev ...
- vue router路由跳转了,但是页面没有变(已解决)
小白学习 router.js:两个组件之间跳转 但是路由变了,页面没有改变的原因是因为app.vue里面没有router-view(很关键)
- pycham永久激活及conda环境部署
1.pycham安装 一般不选择最新版本,我用的是2018.3,选择 Professional专业版 1.1 官网地址: https://www.jetbrains.com/pycharm/downl ...
- String字符串为什么不可变的深入理解
String是被final修饰的,是不可变对象,那么这句什么意思呢.在学习scala时候var,val时候,就想到这个问题,所以记录下 看案例: package com.cxy; import sun ...
- 迁移桌面程序到MS Store(13)——动态检查Win10 API是否可用
假设我们现有一个WPF程序,需要支持1903以前的Windows 10版本.同时在1903以后的版本上,额外多出一个Ink的功能.那么我们就可以通过ApiInformation.IsApiContra ...
- 为宇宙第一强的IDE干一票
背景 在博客园看到很多人说.net在国内已死,很多人在为.net前途担忧,包括一些创业大佬也提及到这些问题,提及到客户指定了说使用php或者java. 那么基本可以确认了,.net 处于风雨漂泊的地位 ...
- Linux(CentOS7)修改默认yum源为国内的阿里云、网易yum源
修改方式: echo 备份当前的yum源 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex echo 新建空的yum源设置目录 mkdir /etc/ ...
- 【JavaEE】之MyBatis插入数据后获取自增主键
很多时候,我们都需要在插入一条数据后回过头来获取到这条数据在数据表中的自增主键,便于后续操作.针对这个问题,有两种解决方案: 先插入,后查询.我们可以先插入一条数据,然后根据插入的数据的各个字段值,再 ...
- VS2019提示scanf不安全问题
VS2019提示scanf不安全问题 我们现在学的就是使用scanf()语句进行输入,但是vs2019中却报错显示不安全 首先我先来说一下scanf和scanf-s的区别 scanf()函数是标准C中 ...