这是一个特别针对手机新浪网的多线程的网络爬虫,并可以用Elasticsearch新闻搜索引擎实现了快速的文本内容搜索.
- 使用Git进行版本控制,使用Github+主干分支模型进行开发,禁止直接push到主干分支,所有的变更都要小步提交 PR 至 Github 主分支.
- 用 Maven 进行依赖包的管理,用自动化代码质量检查工具 CircleCI 进行自动化测试,在生命周期绑定 Checkstyle、SpotBugs 插件保证代码质量。
- 使用 Flyway 自动迁移工具完成数据库初始化建表及添加原始数据工作,用 MyBatis 实现数据与 Java 对象的关系映射,对 MySQL 数据库进行索引优化,使百万级新闻内容的查找效率提升近 2 倍。
- 采用多线程完成爬虫任务,提高爬取效率约 3 倍,使用 Elasticsearch 搜索引擎进行新闻内容的全文检索,实现了亿级文本内容的快速搜索功能。
clone 项目至本地目录:
git clone [email protected]:DieselNiu/mycrawler.git
从 Docker 启动 MySQL 数据库:
- Docker 下载地址
- 如果需要持久化数据需要配置 -v 磁盘文件映射
docker run --name mycrawler -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yourpassword -e MYSQL_DATABASE=news -d mysql:8.0
使用 IDEA 打开项目,刷新 Maven,再使用开源数据库迁移工具 Flyway 完成自动建表工作:
mvn flyway:migrate
项目测试:
mvn verify
运行项目:
- Run Main 类,就开始爬取数据啦!