没有合适的资源?快使用搜索试试~ 我知道了~
第18单元 CMS系统中Kafka应用1
需积分: 0 0 下载量 100 浏览量
2022-08-08
21:35:11
上传
评论
收藏 235KB DOCX 举报
温馨提示
试读
16页
第18单元 CMS系统中Kafka应用1
资源推荐
资源详情
资源评论
unit18.md
第十八单元 CMS系统中Kafka应用
【授课重点】
1. Jsoup工具的使用
2. CMS系统中Kafka生产者的使用
3. CMS系统中Kafka消费者的使用
【考核要求】
1. Jsoup工具的使用
2. CMS系统中Kafka生产者的使用
3. CMS系统中Kafka消费者的使用
【教学内容】
18.1 课程导入
在CMS系统中,如何使用Kafka导入数据?本节主要使用Jsoup工具爬取文章,通过Kafka
将文章数据导入到数据库中。
18.2 Jsoup工具的使用
jsoup 是一款Java
的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的A
PI,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
创建maven项目
配置pom.xml
<dependencies>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.12.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
创建测试类
package com.bawei;
import java.io.IOException;
import java.util.regex.Pattern;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.junit.Test;
public class JSoupTest {
@Test
public void test163() throws IOException {
//
记录文章数
int count = 0;
//
获取连接对象
Connection connect = Jsoup.connect("https://news.163.com/");
//
获取文档对象
Document document = connect.get();
//
获取当前文档的所有超链接
Elements ahrefs = document.select("a[href]");
//
遍历元素对象
for (Element href : ahrefs) {
//
超链接的
url
地址
String url = href.attr("href");
//
定义表达式
https://news.163.com ***** html
// String regex = "https://news\\\\.163\\\\.com.*html$";
//
以
https://news.163.com
开头,以
html
结尾
//https://news\\.163\\.com.*html$
//
特殊要求
if (url != null && url.startsWith("https://news.163.com")
&& url.endsWith("html")) {
// if (url != null && Pattern.matches(regex, url)) {
//
连接的文本内容
String title = href.text();
System.out.println(url + "@@@@@@@@@" + title);
count++;
//
获取文章的文档对象
Document articleDoc = Jsoup.connect(url).get();
//
获取文章的内容元素对象
Element articleContentElement =
articleDoc.getElementById("content");
//
判断元素是否为空
if (articleContentElement != null) {
//
获取纯文本内容
String content = articleContentElement.text();
//
去除标题中的特殊符号
title = title.replace("?", "").replace("\"",
"").replace(":", "").replace("/", "").replace("\\", "");
//
写入到文件中
FileUtil.writeFile("D:\\1706EJsoup\\" + title +
".txt", content, "utf8");
}
}
}
System.out.println("首页中找到了复合条件的网址有:" + count +
"篇文章");
}
}
导入工具类
package com.bawei;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/**
*
*
*/
public class FileUtil {
/***
* @Title: writeFile * @Description: 按照指定的编码把内容写入指定的文件中
* @param path * @param
* content * @param charset * @throws IOException * @return:
void
*/
public static void writeFile(String path, String content, String
charset) throws IOException {
//
创建写入的文件
File file = new File(path);
//
创建输出流对象
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new
FileOutputStream(file), charset));
bw.write(content);
bw.flush();
bw.close();
}
}
运行测试类结果为
剩余15页未读,继续阅读
资源评论
养生的控制人
- 粉丝: 18
- 资源: 333
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Picasso_v3.1 2.ipa
- chromedriver-mac-arm64.zip
- 蓝zapro.apk
- chromedriver-linux64.zip
- UCAS研一深度学习实验-MNIST手写数字识别python源码+详细注释(高分项目)
- 基于Python和PyTorch框架完成的一个手写数字识别实验源码(带MINIST手写数字数据集)+详细注释(高分项目)
- 基于Matlab在MNIST数据集上利用CNN完成手写体数字识别任务,并实现单层CNN反向传播算法+源代码+文档说明(高分项目)
- NVIDIA驱动、CUDA和Pytorch及其依赖
- 基于SVM多特征融合的微表情识别python源码+项目说明+详细注释(高分课程设计)
- html动态爱心代码一(附源码)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功