如何用通俗易懂的语言向Python初学者解释爬虫?

如果非要给爬虫下个定义,那么简单来讲,爬虫就是一个探测机器,它的基本操作就是模拟人的行为去各个网站溜达,点点按钮,查查数据,或者把看到的信息背回来。就像一只虫子在一幢楼里不知疲倦地爬来爬去。

如何用通俗易懂的语言向Python初学者解释爬虫?

当然爬虫也分善恶,既有善意爬虫,同时也有恶意爬虫。像谷歌这样的搜索引擎爬虫,每隔几天对全网的网页扫一遍,供大家查阅,各个被扫的网站大都很开心。这种就被定义为“善意爬虫”。但是,像抢票软件这样的爬虫,对着 12306 每秒钟恨不得撸几万次。铁总并不觉得很开心。这种就被定义为“恶意爬虫”。

网络爬虫的种类可以分为通用爬虫和主题爬虫两种,根据爬取的广度的不同,爬取方式可以分为特定爬取和广泛爬取。按照爬取方式的不同,网站又可以分为源码开放型和源码不开放型、登录可爬型和非登录可爬型。针对不同的网站,需要使用不同的爬取方式。

源码开放非登录可爬型

这种类型的网站是最为普遍且最方便爬取的网站,我们只需要下载其源码并抽取需要的信息即可。抽取方式可以使用Jsoup工具和正则表达式匹配。Jsoup相对简单,对于初学者而言,极易上手。而通过正则表达式来匹配,则需要初学者对正则表达式有一定了解。本文建议可以先用Jsoup进行解析,然后对解析出来的结果有必要进行抽取的,再通过正则表达式进行匹配。注意有时候网站的标签会发生变化,这种变化可能会引起原来的Jsoup解析和正则表达式匹配不正确,在这种情况下,只能以变应变了。

源码开放登录可爬型

这种类型的网站也比较多,它只对登录用户可见,或者对非登录用户部分可见,如知乎、CSDN等等。对于这种网站,需要爬取它的内容,就需要首先注册其网站,然后登录网站并抓包分析,在代码中实现登录功能后,就可以对其源码进行下载操作了。

源码不开放非登录可爬型

这种类型的网站不多,针对这种网站,我们只能去寻找它的文档API,然后下载其API进行解析。

特定爬取和广泛爬取:

所谓特定爬取和广泛爬取指的是是否针对特定网站进行的爬取,如果是,则为特定爬取,否,则为广泛爬取。特定爬取较简单,我们只需对其网站的标签进行分析,然后通过Jsoup工具或者正则表达式进行必要信息的抽取即可。而广泛爬取当然我们也可以按照特定网站爬取的方式对标签进行分析,只不过要分很多种类罢了,较为普遍的使用方法是通过抽取信息的共同特点,根据一些算法进行通用特征的抽取来实现全网爬取。例如,在我们需要爬取全网的新闻内容时,我们就可以采用基于行块分布函数的通用网页正文抽取算法来抽取新闻正文。

Python爬虫可以做的事情有很多,比如搜索引擎、采集数据、广告过滤等,与此同时,Python爬虫还可以用与数据分析,在数据抓取方面发挥巨大的作用。获取Python爬虫入门学习视频教程,大家可以私信我免费索取~

相关推荐