爬虫引入

当今我们正处于发展人工智能和大数据时代。在大数据时代,需要对数据进行分析,这就要求需要有数据来源;而数据抓取可以让我们获取更多的数据源,并且这些数据还可以按照我们具体的要求进行采集和处理。

  当今的一个综艺节目:火星情报局,就是基于网络数据抓取和数据分析来制作完成的。其中每一期的节目话题都是从相关热门的互动平台中进行相关数据的爬取,然后对获取到的数据进行数据分析之后得来的。另外,当前的腾讯视频,抖音,今日头条等主流的媒体平台也都基于用户浏览习惯,利用大数据给客户进行推送。

  从就业的角度来说,爬虫工程师就目前来说当属紧缺人才,所以深层次的掌握爬虫技术对于就业来说是非常有利的。

爬虫简介

1. 爬虫是什么?

  爬虫就是通过编写一段程序模拟浏览器上网,让程序从互联上抓取数据的一个过程;

  在爬虫领域来说,有很多语言都可以实现爬虫,如php,c,c++,java等,但我认为,python实现和处理爬虫的语法比java更简单,且支持多线程和多进程,代码重构成本较低,且拥有强大的第三方库,模块繁多,还有非常强大的scrapy框架,真的是非常好用。

2. 爬虫的分类

  a. 通用爬虫:通过搜索引擎(如Google,Baidu,Firefox等)"抓取系统"的重要组成部分,主要目的是将互联网上的页面内容下载到本地,形成一个互联网内容的镜像备份。即把互联网上所有网页下载下来,放到本地服务器中形成备份,再对这些网页做一些相关处理。那搜索引擎是如何抓取互联网上的网站数据呢?(1) 通过门户网站主动向搜索引擎提供自身网站的url,(2) 搜索引擎公司与DNS服务商合作,获取url,(3) 诸多门户网站主动挂靠在一些知名网站的友情链接中

  b. 聚焦爬虫:根据指定的需求抓取网络上指定的数据,比如:获取美团上商家和客户评论,豆瓣上的电影名称和影评等;而不是获取整张页面中所有的数据值

  c. 增量式爬虫:实时监测网站数据更新的情况,便于抓取网站中最新更新的数据

3. robots协议

  robots协议,全称是"网络爬虫排除标准",网站通过robots协议告诉搜索引擎哪些页面可以抓取,哪些数据不能抓取;如果自己的门户网站中指定页面的数据不想被爬虫程序获取到的话,我们就可以通过编写一个robots.txt的协议文件来约束爬虫程序的数据抓取。但是robots协议只是相当于一个口头协议,并没有使用相关的技术进行强制管制,所以可以说robots协议是一个"防君子不防小人"的协议。

4. 反爬机制和反反爬策略

  反爬机制:众多门户网站通过响应的策略和技术手段,防止爬虫程序进行网站数据的爬取。对应的载体是网站

  反反爬策略:爬虫程序通过相应的策略和技术手段,破解诸多门户网站的反爬机制,从而获取到相应的数据。对应的载体是爬虫程序

爬虫的合法性

  爬虫本身并不被法律禁止,但如果爬虫程序干扰了被访问网站的正常运行或者爬取了受法律保护的特定类型的数据或信息时,就具有违法风险了

如何规避违法风险:

严格遵守网站设置的robots协议;在规避反爬机制的同时,需要优化自己的代码,避免干扰被访问网站的正常运行;在使用和传播抓取到的信息时,要审查抓取的内容,如果发现有属于用户的个人信息、隐私或者他人商业机密的,要及时停止并删除此类信息