课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
爬虫的应用是我们在学习Python编程开发技术的时候需要重点掌握的一个编程知识,下面我们就通过案例分析来了解一下,爬虫资源与部署问题都有哪些。
资源问题
先说资源共享和竞争的情况,为了解决 URL 待爬队列和已经爬队列的共享,那么必须将队列(也就是上面提到的存放 URL 的容器)放到一个可以公开(多个爬虫应用)访问的地方,例如部署在服务器上的 Redis。
这时候又出现一个新状况,随着数据量越来越大,要存储的 URL 越来越多,后面很有可能出现因为存储空间需求过大而导致成本递增的问题。因为 Redis 是利用内存来存储数据的,所以存放的 URL 越多就需要越多的内存,而内存又是硬件设备里价格相对较高的硬件,所以不得不考虑这个问题。
好在一个叫做布隆的人发明了一种算法——Bloom Filter(布隆过滤器),这种算法通过哈希映射的方式来标记一个对象(这里是 URL)是否存在,这样可以将内存的占用率大大降低,按 1 亿条长度为 32 字符的 URL MD5 值来计算,使用 Bloom Filter 前后的差距大约在 30倍。关于 Bloom Filter 的算法原理和代码实现解读可翻阅《Python3 网络爬虫宝典》第 3 章 。
部署问题
一个个文件上传,一次次手动运行爬虫实在是太累了。你可以向运维同事寻求技术支持,但也可以自己探寻这些能够减轻你工作量的自动化部署方式。目前业内知名的持续集成和部署莫过于 GitLab 的 GitLab Runner 和 GitHub Action,又或者是借助 K8S 的容器化来实现。但它们只能帮助你实现部署和启动,而爬虫应用的一些管理功能就指望不上了。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。