【爬虫教程】爬虫入门01

目录

 

1.1爬虫入门

1.1.1了解爬虫

1.1.2爬虫分类

1.1.2.1通用爬虫:

1.1.2.2聚焦爬虫

1.1.3爬虫框架

1.1.3.1通用爬虫图解

1.1.3.2通用爬虫流程

1.1.3.3爬虫小结


1.1爬虫入门

1.1.1了解爬虫

这世上本没有爬虫,只是因为有了web,才有了爬虫,目前市面上说的爬虫基本上是围绕web网页的,甚至很多技术栈和框架也是围绕web技术趋势来发展的,但只是其一,目前也有很多围绕app来做的爬虫,当然实现起来也就更难了,其实在谈数据采集之前,我们应该先思考另外一个问题,为何采集爬取数据,只有回答了这个问题,才能理解为什么爬虫这个行业这么火爆。

围绕数据采集有以下使用场景,且有利益输送,这是一个大数据的时代,数据就是价值就是金钱(你肯定反驳那不一定非得爬呀,只能说你太年轻,有数据的公司太少了,毕竟不是BAT:

  • 搜索引擎公司,不得不说,谷歌百度等搜索引擎公司是最大的爬虫公司,只不过别人找到了目前截止目前信息时代数据最好的变现商业产品而已。
  • 舆情分析与数据挖掘,这绝对是爬虫数据被综合利用设计后很好的实现场景之二,比如百度,谷歌,搜狗,微博等排行榜或者舆情分析产品。
  • 买数据的公司,或者数据聚合的公司,比如天眼查,企查查,西瓜数据等等。
  • 导购,价格监测,运营助手,或者横向数据聚合的公司等,以此为生的产品衍生的小公司就不一一列举了。
  • 黑产,灰产,刷量,排行榜,搬砖等,比如前期被判刑的美剧天堂还是什么公司就是这样的,这样的个人,团伙也是不少的。
  • 广告公司,比如新榜,清博数据等围绕微信,微博等社交媒体的公司。

总之以此爬虫拿公开或者非公开的数据价值来为自己赚钱即是人性,所以你很难说把这个行业给消灭掉,话说还有很多公司是希望自己的产品被人爬呢?只要在法律的准绳之内,遵循robots协议,大家还是可以很好的玩耍的。

下面说说爬虫和大数据的关系,企业的数据无非有以下几个来源:

  • 数据库(这里的数据库是泛指,有可能是文件,关系型数据库或列存储数据)里数据,包括自己的业务数据,价值密度应该最高的。
  • 埋点数据,当前以友盟,百度,talkingdata等为首的web或者app埋点数据厂商,当然也可以自己开发埋点数据工具来收集数据。
  • 日志数据,包括系统,应用,网络等数据,价值密度相对较小,这里也涉及到很多技术
  • 爬虫或者外部采集数据,对,网络采集数据作为企业内部数据一个很好的补充,也是有相当价值的

1.1.2爬虫分类

1.1.2.1通用爬虫:

  • 爬取目标资源在全互联网中,爬取目标数据巨大。对爬取性能要求非常高。应用于大型搜索引擎中,有非常高的应用价值。
  • 通用网络爬虫的基本构成:初始URL集合,URL队列,页面爬行模块,页面分析模块,页面数据库,链接过滤模块等构成。
  • 通用网络爬虫的爬行策略:主要有深度优先爬行策略和广度优先爬行策略。

1.1.2.2聚焦爬虫

  • 将爬取目标定位在与主题相关的页面中
  • 主要应用在对特定信息的爬取中,主要为某一类特定的人群提供服务
  • 聚焦网络爬虫的基本构成:初始URL,URL队列,页面爬行模块,页面分析模块,页面数据库,连接过滤模块,内容评价模块,链接评价模块等构成
  • 聚焦网络爬虫的爬行策略:基于内容评价的爬行策略、基于链接评价的爬行策略、基于增强学习的爬行策略、基于语境图的爬行策略关于聚焦网络爬虫具体的爬行策略。

1.1.3爬虫框架

1.1.3.1通用爬虫图解

通用爬虫框架定义了编写一个网络爬虫最基本的过程。一个通用的爬虫框架通常包含待抓取的URL列表、已抓取的URL列表、URL下载器、URL解析器、数据库等几个模块。根据任务的需求,还可以加入监控模块、定时启动模块等。下图是一个通用爬虫框架示意图:

1.1.3.2通用爬虫流程

  • 确定种子URL,并存入待抓取的URL列表;
  • 从待抓取的URL列表中随机提取一个URL,发送到URL下载器;
  • URL下载器开始下载页面,如果下载成功,将页面发送给URL解析器,同时把URL存入已抓取的URL列表;如果下载失败,将URL重新存入待抓取的URL列表,重复step 2;
  • URL解析器开始解析页面,将获得的新的URL存入待抓取的URL列表,同时将需要的、有价值的数据存入数据库;
  • 重复step2-4,直到待抓取的URL列表为空。

1.1.3.3爬虫小结

  • 为了提高爬取的效率,个人认为可以将爬取功能和解析功能分开(生产者消费者模式),在爬取得过程中可以使用多线程爬虫爬取,在多线程中是用协程爬取会更加高效。