我们很幸运,处于互联网的时代,大量的信息在网络上都可以查到。当我们需要去浏览数据或文章时,通常采用的方式是复制和粘贴,当数据量大的时候,这自然是一件耗时耗力的事情。我们希望有一个自动化的程序,自动帮助我们匹配到网络上的数据,下载下来,为我们所用。这时候,网络爬虫就应用而生了。
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
现在,以我自己的理解,基本概括一下对爬虫的理解。
什么是爬虫?
首先,听我一席话,如听一席话,这里的爬虫不是生物学意义上的爬虫。
爬虫,一般指的是网络爬虫,一种自动化的程序,自动帮我们搜索和匹配有用的程序,下载下来,为我们所用。
爬虫有什么作用?
获取我们需要的数据。很多搜索引擎中就大量的使用爬虫,例如百度搜索、谷歌搜索。爬虫根据需要,有着不同的分类。
例如,通用的搜索引擎有一定的局限性:
- 不同领域、不同背景的用户往往具有不同的检索目的和需求,通过搜索引擎所返回的结果包含大量用户不关心的网页。
- 通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
- 万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
- 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出。
因此,有了聚焦爬虫。它会面向特定的主题和网页,为面向主题的用户查询准备数据资源。
为什么使用Python进行爬虫?
- Python语言相对其他高级语言简单易学,因此能够入选小学教材。
- Python对爬虫有更完备的基础库和框架支持。
- 大多数人都使用Python来开发爬虫,当然要“合群”。如果自认为不是天才,“合群”,很重要。
- 大多数人使用Python开发。那么就会有比较完善的说明、书籍、教程。
- 遇到问题的时候,更容易搜索到解决的办法;社区里面提问,其他人的解决度也会更高,是不?
- 使用的人多,相对来说,就更容易投入人力去解决。那么,语言本身也会稳定,先对不容易出现bug。
- 技能用的时候,难免需要和人合作。自然是需要使用通用的东西。例如,我出门在外,不能用福州话和人交流。文化是允许多样性的,但需要“车同轨、书同文、统一度量衡”来增进彼此的沟通,应用广大劳动人民的智慧解决更多问题。
爬虫技术是否需要持续学习?
- 不同网页的渲染技术不同。例如,有些不是通过Ajax请求得到的,而是通过JavaScript渲染得到的。关于网站的技术会变,那么爬取它的信息的方法自然会变。所以,需要持续。
- 很多网站是反爬虫的。这就如锁和开锁技术一样,会相互促进技术进步,双方来说,都是落后就要挨打;一个落后了无法保护财产,另一个落后了无法谋生。所以,需要持续学习。网站为什么发爬虫?
- 爬虫短时间内发出大量的请求,影响服务器性能,会影响正常用户访问。
- 就如同知识产权一样,很多企业数据本身也是劳动成果,需要保护。
- 随着知识量的庞大,量变将会引起质变。如果找到有需要的内容,这个问题的解决方法,一定不会是恒古不变的。