4.6 爬虫与反爬虫 2021-06-22

前几章我们讲了通过爬虫来获取有效数据,那么相对应的就有反爬虫来控制拒绝爬虫的访问。

这一章我们就了解一下这两个方式。

爬虫的分类:

爬虫按大类大概分为三类:

  1. 全网爬虫
  2. 站内爬虫
  3. 定向爬虫

我们来举例了解这三类:

1、全网爬虫像搜索引擎,我们在百度上搜索一个问题时,会出现对应的回答内容,这就是全网爬虫,对所有收录的网站进行爬虫,获取关键词在对应的词库,这样用户搜索的时候就会返回相应的结果了。(在SEO优化的时候有很大帮助,比如我们新建了一个网站,想让用户在搜索关键词时自己的网站靠前,就可以建立对应的文件、词条,提高自己的曝光率)

2、站内爬虫:类似于第一类,区别在于是特点的站点,更多用于企业类

3、定向爬虫:用于从某些网站爬取特定的数据,比如说,我们想了解天气的信息,就从天气网来爬取,目的性很强

常用技术:

        1. cookie 和 session  

 模拟用户登录状态,请求完整信息

        2. 网络库 (urllib、urllib3、requests等)

链接网络,请求网络信息

        3. 分析库 (lxml、Beautiful Soup、pyquery等)

对获取到的文本进行数据分析,过滤获得所需数据

        4. 爬虫框架 (如Scrapy、Selenium、Appium等)

提供了强大的爬虫功能方法。

比如我们可以将一些常见爬虫功能的实现代码写好,然后留下一些接口,在做不同的爬虫项目时,我们只需要根据实际情况,手写少量需要变动的代码部分,并按照需要调用这些接口,即可以实现一个爬虫项目

        5. 数据存储 (文件、SQLite、MySql、MongoDB等)

用于存储获得的数据

        6. 缓存 (Redis等)

有时候我们会频繁的调用页面请求,这个时候可能数据来源识别我们的频繁访问,限制我们的ip请求,这个时候我们就可以把请求到的数据写入我们的缓存,一段时间刷新一次;

或者在网络很慢的情况下,对我们获得数据的速度也有提升

 作用:

我们了解了这么多关于爬虫的方法,那么,爬虫有什么用处呢?

1、数据分析

当我们需要对某一现象或者是某一个市场进行分析时,会需要大量的数据,本身我们有没有这些数据,这个时候可以从各大网站上爬取我们需要的数据来进行分析

2、作为API的数据源

这个就像是我们拿别人的数据,来做我们的数据库,

3、作为人工智能的数据源

人工智能的机器学习是需要培养的,比如说我们训练AI识别狗狗,就需要各种狗狗的图片,种类,那么从网站爬取狗狗图片是必不可少的

反爬虫

当我们是索取者时,需要的是爬虫技术,那么当我们换成给予者,就需要反爬虫技术了。

反爬虫简单来说就是通过爬虫的特征去识别爬虫,并且拒绝爬虫的访问。

为什么需要反爬虫呢?

可以从两方面来解释:

首先,我们有一些敏感数据,并不希望被别人拿去使用,

其次,爬虫会对服务器造成一定的压力,拿搜索来举例子,用户搜索“足球”,一般来说用户不会一直往下看,所以服务器会把前10页的搜索信息缓存下来,下次再搜索的时候在缓存里去取,这样就减轻服务器压力;但是爬虫会一直往下请求,不但但10页,会一直请求到获取不到更新的数据,一个两个还行,如果同时10w个请求,服务器会崩的

防御方式

那么有什么方法来反爬虫呢?

按方式分类分为两种:

1、主动防御

通过技术手段, 识别正常程序和爬虫,并限制爬虫对网站的访问行为,如:验证请求头信息,限制访问频率,使用验证码(如12306)等通过技术手段区分正

2、被动防御

通过技术手段,提高爬虫抓取数据的难度,
例如:数据分段加载(一段文本分几段进行加载,数据加密),鼠标悬停预览数据,文本混淆等

反爬虫的方法有以下几种:

1、User-Agent 反爬虫
  使服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
2、cookie反爬虫
   识别有cookie的才可以请求数据
3、签名验证反爬虫
   上面讲的分段等
4、动态渲染数据
   不直接返回数据,通过ajax或者其它方式,直接爬取只能爬取到空数据
5、文本混淆
   按一定的规律对数据进行混淆处理,在展示出来
6、特征识别
   验证码、语音识别等        

 

下一章自动化测试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值