java爬取博客和资讯,将爬取的数据直接存入数据库
web crawler_java爬虫工具
描述
一个java实现的爬虫工具,能够爬取CSDN的博客内容、评论内容、回复内容,能够爬取凤凰网的资讯等…
项目示例工程基于**springboot、mybatis-plus
也可以用mybatis或者原生jdbc构建连接数据库的环境 + jsoup包下的内容 + resources/static/sensi_words.txt完成爬取**。
经过简单的代码修改(jsoupUtil修改为对应自己操作数据库的mapper:mybatis or service:mybtis-plus),即可 快速将爬取的数据录入到自己的数据库中。
环境
- springBoot 2.3.2
- mybtis-plus 3.1.0
- maven idea自带默认
- mysql 5.6.42
技术栈
- springBoot: 简便配置连数据库的配置
- mybatis-plus: 逆向工程生成操作数据库的代码
- druid: 数据源
- jsoup: 爬虫工具
- lombok: 便捷的实体类方法生成工具
- commonmark: markdown转换
- emoji-java: 表情转换
- fastjson: json转换工具
- sensi: 脏字词,敏感字词处理
项目演示
博客爬取:
资讯爬取:
原理说明
静态页面:jsoup拿到document对象,然后解析document中存放的数据并进行适当的内容处理获得最终的数据,然后存放在实体类中并录入数据库
动态页面: 需要分析并找到其渲染数据的url,一般为xhr或者js请求,然后解析请求,获得的含有json内容,适当处理后转换为json对象,在取到有效信息存入实体类,最后放入自己的数据库。
配置说明
1.需要构造自己pojo(bean),推荐使用示例中pojo中的实体类,若想用自己的实体类注意修改JsoupUtil中关于实体类set属性注入部分。mapper层,保证能够对数据库进行基本操作,推荐使用springboot+mybatis-plus的generator,简单配置,一键生成!
2.对JsoupUtil进行简单修改
springboot+mybatis-plus项目:
不建议修改有红线的地方,避免修改下面调用类的命名。只需把类改为操作数据库的类即可
非springboot+mybatis-plus项目:
除上述部分还需修改每个调用上面类方法的地方,共9处。
3.运行:
非springboot项目:
public static void main(String[] args) {
new JsoupUtil(
//传入你操作数据库的类组即可
).getStart();
}
springboot项目:
依赖于spring项目的一些配置,需要在test目录中运行test方法
@SpringBootTest class WebcrawlerJavaApplicationTests { @Autowired private BlogService blogService; @Autowired private InformationService informationService; @Autowired private BlogCommentService blogCommentService; @Autowired private BlogCommentReplyService blogCommentReplyService; @Autowired private InformationCommentService informationCommentService; @Autowired private InformationCommentReplyService informationCommentReplyService; private static ThreadLocal<Long> startTime = new ThreadLocal<Long>(); @Test public void jsoup() { new JsoupUtil( blogService, informationService, blogCommentService, blogCommentReplyService, informationCommentService, informationCommentReplyService ).getStart(); } }
4.启动,操作,查看结果…
最后说明
本项目仅供学习使用!请尊重每位作者的付出!
本项目仅能爬取CSDN博客页内容,凤凰网除视频的内容。
若对上述网站需要更多数据的爬取,有能力者,自己增改JsoupUtil中解析document以及json解析中的数据获取部分;也可以联系 qq: 1216770825 进行寻求帮助!
关于项目搭建问题,同样联系 qq: 1216770825 寻求帮助!
项目地址
本文地址:https://blog.csdn.net/qq_45676485/article/details/107882521