轻量级爬虫开发(二)

个人的第二篇博客,继续视频学习,感兴趣的小伙伴可以查看这个视频链接https://www.imooc.com/video/10680/0,所有的图片均为视频截图,如果涉及版权问题,请联系删除。

二、简单爬虫架构-动态运行流程

运用时序图解释,时序图中包括调度器、URL管理器、下载器、解析器、应用

首先,调度器询问URL管理器是否有待爬取的URL,URL管理器返回是或者否,如果有待爬取的URL,调度器向URL管理器提出请求爬取一个URL,URL管理器将一个URL返回给调度器,调度器将这个URL传送给下载器,下载器下载网页内容并返回给调度器,调度器将URL内容传送给解析器进行解析,解析器解析完成之后,将价值数据和新的URL列表一起返回给调度器,调度器将价值数据传送给应用,并将新的URL传送给URL管理器,如果URL管理器中还有URL,则循环继续,直到URL管理器中没有待爬取的URL,循环结束。

动态运行流程

 

三、URL管理器:管理待抓取URL集合和已抓取的URL集合

目的在于:防止重复和循环抓取。URL之间往往循环指向的,如果不对URL进行管理,爬虫就会不断的抓取这些URL,最糟糕的情况两个URL互相指向,则我们将不停的抓取这两个URL管理器,形成死循环。

功能:URL管理器要求至少具备5个功能,即添加新的URL到待爬取集合中,判断待添加的URL是否已经存在容器中,获取待爬取URL、判断是否有带爬取URL以及将URL从待爬取移动到已爬取。

URL的实现方式

三种实现方式:第一种,存储在内存中(个人或小型公司);第二种,存储在关系数据中(永久保存),第三种,缓存数据库中(大型互联网公司)

1. python内存,待爬取URL集合:set() 已爬取URL集合:set()

2.MySQL urls(url, is_crawled),crawled用来标记待爬取还是已爬取

3.redis 待爬取URL集合:set 已爬取URL集合:set

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值