Scrapy学习笔记-4.爬虫url去重策略、字符串编码

1.在分析网页url结构时,因为网页url重复的原因(如:一级页面有首页url,二级页面仍有首页url,如果不去重,爬虫会对首页url循环爬取,无法跳出),我们需要对已经爬取过的url做去重处理。

2.爬虫去重策略

1.将访问过的url保存到数据库中----效率非常低,应用起来最简单
2.将访问过的url保存到set中,只需要O(1)的代价就可以查询url----内存占用会越来越大,eg.1亿条url大概会占用9G内存
3.url经过md5等方法哈希后保存到set中----将字符缩减到固定的长度,比法2成倍压缩内存,大概5倍
4.用bitmap的方法,将访问过的url经过hash函数映射到某一位----内存进一步压缩。bitmap缺点:冲突会非常多
5.bloomfilter方法对bitmap进行改进,多重hash函数降低冲突

3.scrapy使用法3,后面会讲解bloomfilter的实现

4.python字符串编码:写文件、网络传输的过程中、调用函数时会报错

utf8编码存储和传输优势明显,编程时使用utf8编码问题就会变得复杂 ,因为在内存中,一个字符串中有的字符占用1个字节,有的占用2个字节,很混乱。所以在应用场景下两种字符的互相转换就变得非常必要。 

python2中编码不同,python3中编码统一变为unicode

encode(unicode)、decode(unicode)方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值