欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java爬取博客和资讯,将爬取的数据直接存入数据库

程序员文章站 2022-07-10 18:43:07
web crawler_java爬虫工具文章目录web crawler_java爬虫工具描述环境技术栈项目演示原理说明配置说明最后说明项目地址描述一个java实现的爬虫工具,能够爬取CSDN的博客内容、评论内容、回复内容,能够爬取凤凰网的资讯等…项目示例工程基于**springboot、mybatis-plus也可以用mybatis或者原生jdbc构建连接数据库的环境 + jsoup包下的内容 + resources/static/sensi_words.txt完成爬取**。经过简单的代码修改(...

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: 脏字词,敏感字词处理

项目演示

博客爬取:
java爬取博客和资讯,将爬取的数据直接存入数据库

资讯爬取:
java爬取博客和资讯,将爬取的数据直接存入数据库

原理说明

静态页面:jsoup拿到document对象,然后解析document中存放的数据并进行适当的内容处理获得最终的数据,然后存放在实体类中并录入数据库

动态页面: 需要分析并找到其渲染数据的url,一般为xhr或者js请求,然后解析请求,获得的含有json内容,适当处理后转换为json对象,在取到有效信息存入实体类,最后放入自己的数据库。

配置说明

1.需要构造自己pojo(bean),推荐使用示例中pojo中的实体类,若想用自己的实体类注意修改JsoupUtil中关于实体类set属性注入部分。mapper层,保证能够对数据库进行基本操作,推荐使用springboot+mybatis-plus的generator,简单配置,一键生成!

2.对JsoupUtil进行简单修改

springboot+mybatis-plus项目:

java爬取博客和资讯,将爬取的数据直接存入数据库
不建议修改有红线的地方,避免修改下面调用类的命名。只需把类改为操作数据库的类即可

非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