网络爬虫(又称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
前排提示:文末有CSDN独家爬虫资料包
01 初识爬虫
我们所了解的爬虫概念和架构,只需要做一些简单的爬取工作即可,比如爬取百度百科这种纯信息展示的网页,这些都是不需要登录的静态网页。
而有些比较复杂的网页,则需要验证码、登录验证或者需要证书才能访问,但再复杂的爬虫网页和爬虫框架,实际上都离不开基本的爬虫架构。
首先我们需要一个爬虫调度端来启动和停止爬虫,同时也要通过它来监视爬虫的状态,并通过它提供接口来作具体的数据应用,这个部分不属于爬虫本身。
图中方框中的部分就是我们的爬虫程序;
因为有的页面的入口有很多,我们可以通过不同的Python调度路径来访问这个界面,那么作为一个智能的爬虫软件,当遇到我们已经爬取过的URL的时候,应该选择过滤,而不是再次爬取。
URL管理器就是用来存储已经爬取URL和将要爬取URL的工具的;
从URL管理器中选择一个待爬取的URL,将其传送给网页下载器,下载器会把网页以字符串的形式下载下来,并把这个字符串交给网页解析器去解析。
网页解析器一方面会把你需要获取的价值信息提取出来归还给调度器,另一方面,如果遇到该网页有新的URL待爬取,就会把这个URL传送给URL管理器。
然后这三个模块进行循环,直到该网页相关的所有URL都爬取完毕。
以上的动态运行流程,可以用下方更加清晰的时序图,这样看起来更直观,可以对照着上面的步骤理解下。
爬虫会从某个特定URL入手,自动的访问它所关联的URL,并且提取出我们所需要的数据。
这也是爬虫的价值:获取互联网上巨量的数据为我所用,利用数据服务于产品。
例如爬取 GitHub 中一天浏览量和 star 提升数最高的项目,有了这个数据,就可以做出一个 GitHub 开源项目推荐的项目。
现在各大网站的歌曲都有版权保护,下载歌曲不太方便,可以通过歌曲名字,爬取网上所有免费下载链接,这样就可以轻易做出一个歌曲搜索下载的聚类工具。
可以说,只要有数据,就没有做不到的。
用Python写爬虫,并不意味着单纯掌握一门Python语言就搞定爬虫了,要学的东西还是很多的,Python只是作为通关的基础。
而且涉及到大规模爬虫,还需要了解分布式的概念、消息队列、常用的数据结构和算法、缓存,甚至还包括机器学习的应用等等。
爬虫往精了学都是要靠很多技术来支撑的。
想更加系统的学好Python爬虫知识