何为爬虫技术

一、什么是爬虫


        所谓爬虫,其本质是一种计算机程序,它的行为看起来就像是蜘蛛在网上面爬行一样,顺着互联网这个“网”,一条线一条线地“爬行”。所以爬虫在英文中又叫作“Spider”,正是蜘蛛这个单词。

        由于传统低效率的数据收集手段越来越不能满足当今日益增长的数据需求,但是面对互联网这样一个由数据构建而成的海洋,如何有效获取数据,如何获取有效数据都是极其劳神费力、浪费成本、制约效率的事情。很多时候,按照传统手段完成一个项目可能80%~90%的时间用于获取和处理数据。这样的矛盾冲突,搁在以往,搁在普通的人和普通的公司身上,除了用金钱去填补(直接购买数据)之外,似乎只有默默认命了。


        然而现在,终于有了扭转之机,那就是驾驭爬虫技术。


二、爬虫可以做什么

2.1 收集数据


        爬虫可以用来收集数据。这也是爬虫最直接、最常用的使用方法。由于爬虫是一种程序,程序的运行速度极快,而且不会因为做重复的事情就感觉到疲劳,因此使用爬虫来获取大量的数据,就变得极其简单和快捷了。由于现在99%以上的网站都是基于模板开发的,使用模板可以快速生成相同版式、不同内容的大量页面。因此,只要针对一个页面开发出了爬虫,那么这个爬虫也能爬取基于同一个模板生成的不同页面。这种爬虫称为定向爬虫。

2.2 信息调查


        数据不会说谎,特别是数据量极大的数据,人工伪造的总会和自然生成的存在区别。而在以前,对于数据量极大的数据进行搜集是一件非常困难的事情,但现在有了爬虫的帮助,很多欺骗行为(比如,刷单等)都会赤裸裸地暴露在阳光下。

2.3 刷流量与秒杀活动等


        刷流量是爬虫天然自带的功能。当爬虫访问了一个网站时,如果这个爬虫隐藏得很好,网站不能识别这一次访问来自于爬虫,那么就会把它当成正常访问。于是,爬虫就“不小心”地刷了网站的访问量。除了刷流量外,爬虫也可以参与各种秒杀活动,包括但不限于在各种电商网站上抢商品,抢优惠券,抢机票和火车票。

三、爬虫开发技术


        爬虫的主要目的是获取网页内容并解析。只要能达到这个目的,用什么方法都没有问题。由于Python具有语法简单、入门容易等特点,现在已经成为众多领域的首选语言。当下在Python这一门语言的帮助下,要入门开发爬虫几乎没有门槛,几行代码就能写出一个爬虫。而爬虫相关的框架更是多如牛毛,稍稍配置一下就能实现非常不错的爬取效果。

        关于获取网页,比如Python的两个第三方模块,一个是requests,另一个是爬虫框架Scrapy。关于解析网页内容,比如——正则表达式、XPath和BeautifulSoup。

        这两种网页获取方式和3种网页解析方式可以自由搭配实现爬虫效果,但由于网站必然不会这么轻易地让人把数据全给拿走,因此很多网站都会采取各种反爬虫措施(常规的反爬虫措施包括但不限于访问频率检查、验证码、登录验证、行为检测等)。
        所以,根据实际情况随意使用中间人攻击技术、自动化技术与爬虫技术结合等手段。实现自动化的重试,自动修改爬虫的头部信息,自动更换IP,自动处理异常和批量部署等;以达到突破了网站的封锁和提高爬虫的爬取效率。

--------------------------------------

本篇文章同步发表在博主微信公众号:

何为爬虫技术_第1张图片

 

你可能感兴趣的:(Spider,python)