爬虫的基本原理及应用场景

什么是爬虫?爬虫就是使用任何技术手段,批量获取网站信息的一种方式,关键在于批量。说白了其实就是模拟真正用户去请求获取大量数据。

下面将介绍爬虫的方式以及实际应用场景。

目录

1、爬虫的方式

2、爬虫的应用场景

3、反爬虫策略

爬虫的方式

爬虫从网页交互维度,主要分成2种方式,分别是常规爬虫和自动化爬虫。

1、常规爬虫

常规爬虫也叫裸写代码爬虫,是最原始的一种爬虫方式。

比如想爬取微博热搜榜,需要经过3个步骤:

1、确定目标地址

分析页面请求格式 找到微博实时热搜的网页地址:?cate=realtimehot

2、目标信息解析

请求到具体页面后,需要解析页面里面的数据,爬取回来的页面,实际是一堆前端代码,通过 dom api去读取代码里面的数据,比如你想要拿到每条热搜的名称,那就需要拿到热搜名称在网页dom结构中的路径。

打开凤凰新闻,查看更多高清图片

3、数据存储

解析出目标信息后,可存入数据库或者写入文件中,以备后续使用。

小结:可以看出常规爬虫,必须要提前知道需要爬取的每个页面的具体地址,而且只能一个一个网页地爬取,不能整站爬取;每个页面都要写相应的代码去模拟请求,比较麻烦。

随着时代的发展,自动化爬虫框架应运而生。往下看~

2、自动化爬虫

自动化爬虫框架有好几款,下面介绍比较经典的puppeteer框架。

puppeteer是谷歌浏览器出的无界面(headless)chrome工具,它提供了一个高级的api来控制无头(无界面)的chrome。

puppeteer可以模拟大部分的用户操作,包括点击、滚动、悬浮、聚焦等大部分交互,所以只要你知道了一个网站的首页地址,就可以通过调用api去模拟用户操作来爬取整个网站的数据。

比如你想抓取百度里面python的搜索数据,那只需要调用api模拟键盘输入“python”=> enter => 点击搜索项 => 解析爬取内容就可以了。

接下来看下puppeteer爬虫的更多应用场景。

爬虫应用场景

前面有说了puppeteer自动化爬虫框架,很多应用场景也是基于puppeteer而诞生的。

1、抓取网页数据

因爬虫数据而诞生的产品,比如比价购物、各种热搜排行、舆情追踪、新闻追踪、盗版vip视频网站等等。

2、UI自动化测试

因为puppeteer提供了很多模拟用户操作的api,所以现在很多公司会基于puppeteer来做一些自动化测试,比如想要测试一个前端页面的兼容性、前端页面UI是否有bug,只需要模拟执行表单提交、键盘输入等页面操作。

3、生成页面截图和PDF

puppeteer也提供了截图、生成pdf的api。

4、监控网页数据

可通过爬取前端的数据,来监控网站数据是否有异常(比如数据掉0)。如果数据异常,可发告警到数据人员。

5、监控网页性能

它可以捕获网站的时间线追踪,以帮助诊断性能问题。

反爬虫策略

有爬虫就有可能会有反爬虫,有些网站的数据比较敏感,不想让你获取,这时该公司就会采取各种反爬措施。

1、封锁ip

这是比较简单粗暴的方式,查询单位时间内请求次数过多的账号,然后查到账号的电脑ip后,直接屏蔽这台电脑的访问,但是误伤率也比较高,要谨慎使用。

2、把敏感信息用图片替换

电商平台的商品价格信息是比较敏感的,有些平台会把价格型号信息用图片来代替展示,这样确实能防住爬虫,但是随着机器学习的发展,现在识别图片的技术越来越强,慢慢的这个处理办法的效果也不是那么好了。

3、网页所见非所得

通过一定的算法规则,把虚假信息和真正信息做下映射,在网页代码里面存的是虚假信息,但是显示的时候,利用算法规则和ttf字体文件映射出真实信息。

4、人工输入动态码

有些网站为了避免被爬,在你访问页面之前,比如输入一个验证身份且有有效期的动态码。

5、法律途径

爬虫违法吗?现在的爬虫在法律层面还是有点擦边球,爬虫的官司现在还是有的,通过法律途径也算是一种保护数据的方式。

作者 | 小课lemon;编辑 | 鱼丸汤圆

内容仅代表作者独立观点,不代表早读课立场。