爬虫的基本架构,下边做一下总结:
1.首先要有一个爬虫调度端,来启动爬虫、停止爬虫或者是监视爬虫的运行情况,在爬虫程序中有三个模块,首先是URL管理器来对将要爬取的URL以及爬取过的URL这两个数据的管理,从URL管理器中,我们可以取出一个待爬取的URL,将其传送给网页下载器,下载器会将URL指定的网页下载下来存储成一个字符串,这个字符串会传送给网页解析器进行解析,一方面会解析出有价值的数据,另一方面,每个网页都有很多指向其他网页的URL,这些URL被解析出来之后,可以补充进URL管理器,URL管理器,网页下载器,网页解析器,这三个模块,就形成了一个循环,只要有相关联的URL,就会一直运行下去,以上这些模块就组成了一个简单的爬虫架构,这个架构的运行,就可以将互联网上相关联的网页都爬取下来。
2.给大家讲一下爬虫架构的运行流程:首先是调度器向URL管理器发出询问请求,问是否有待爬取的URL,然后URL管理器会返回一个信息(是或否)给调度器,如果有待爬取的URL的话,调度器会进一步发出获取待爬取URL的指令,URL管理器接收到该指令后,会将待爬取的URL发送给调度器,紧接着,调度器会将此URL传送给下载器,命令下载器下载URL所指向的内容,下载器下载完成后,会将下载内容返回给调度器,然后调度器接收到下载内容后会将其传送给解析器,解析器会将解析完的内容(包括价值数据、新的URL)返回给调度器,调度器将解析后的内容进行一系列操作,比如说存储下来,若有新的URL在解析内容中,又会重复以上步骤。
3.URL管理器的作用:管理好待爬取的URL集合以及已爬取的URL集合,防止重复抓取以及循环抓取。
4.URL管理器的实现方式主要有三种:(1)存放在内存之中 Python内存 待抓取URL集合:set()
已抓取URL集合:set()
(2)存放在关系数据库MySQL url(url,is_crawled)
(3)存放在缓存数据库redis 待抓取URL集合:set
已抓取URL集合:set
5.网页下载器:通俗的讲,网页下载器就是将网页内容下载到本地计算机的工具,将网页内容保存为本地文件或者内存字符串
python主要有两种网页下载器:urllib2和requests(这个今天学的不是很理解,以后在慢慢解释)
以上就是今天所学内容,因为是初学阶段,在一些方面可能理解的不是很确切,还请多多指正,大家共同学习,一起进步,谢谢。 |