基于Redis的爬虫平台的实现
2023-09-11 14:19:37 时间
一、需求:
1.数据抓取:目标数据的下载、解析、入库功能。
2.数据服务:黑名单、灰名单等查询服务。
3.平台监控:平台各个模块的数据实时监控。
二、WEB端效果展示:
三、架构设计
下载器、解析器、持久器、调度器都支持独立部署,可横向拓展部署多台服务。解耦。
下载器内部开启多线程下载;
解析器从待解析队列取数据,分支抽链、解析;
调度器和持久器都放在web工程中,项目启动时抓取任务初始化+持久器任务开启。
下载器、解析器、调度器、持久器都依赖于底层基础DAO服务。
四、技术选型
1.下载器和解析器:尝试过很多种,Jsoup、Jspider、Xpath、httpclient、HtmlUnit等。基本功能都可以。Jsoup可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。Jsoup的强大选择器最终让我选择了它。
2.生产消费介质:这里有很多种:消息队列MQ、缓存容器redis等都可以胜任。作为一次练手,采用单台redis作为消费介质(内部串行执行),可避免多线程并发问题,数据结构为list。
相关文章
- 从MySQL到Redis 提升数据迁移的效率
- Redis 简介以及安装介绍
- Redis读取出错,JSON序列化的问题
- redis数据类型
- Spring中使用RedisTemplate操作Redis(spring-data-redis)
- redis 简单整理——Lua[十一]
- Redis集群客户端扩展
- spring boot:用redis+lua限制短信验证码的发送频率(spring boot 2.3.2)
- redis集群之REDIS CLUSTER
- Redis短连接性能优化
- Ansible详解(十六)——Ansible配合Redis
- Redis 就是让你彻底搞懂redis集群
- 调用 redis 原子命令,保证多线程安全 的incr命令问题
- 【Python3网络爬虫开发实战】1.5.3-redis-py的安装
- 学习Spring Boot:(二十五)使用 Redis 实现数据缓存
- Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站
- redis_03 _ 高性能IO模型:为什么单线程Redis能那么快
- Redis 5.0 redis-cli --cluster help说明
- Redis is configured to save RDB snapshots redis的 rdb持久化错误
- redis单线程原理___Redis为何那么快-----底层原理浅析
- Docker 实践经验:Docker上部署 redis 三主三从集群