From 165170af97faba700ce90cf66ac20238f4999dc4 Mon Sep 17 00:00:00 2001
From: User_cyk <1020691186@qq.com>
Date: Fri, 22 Dec 2023 23:36:22 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E6=9E=90url?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 11 +++
.../controller/UrlAndCateController.java | 81 +++++++++++++++++++
src/main/java/com/lovenav/dao/NavDao.java | 2 +
3 files changed, 94 insertions(+)
diff --git a/pom.xml b/pom.xml
index 4080af2..7010b1e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -129,6 +129,8 @@
jackson-annotations
2.12.0
+
+
redis.clients
jedis
@@ -147,6 +149,15 @@
3.14
+
+
+
+ org.jsoup
+ jsoup
+ 1.15.3
+
+
+
diff --git a/src/main/java/com/lovenav/controller/UrlAndCateController.java b/src/main/java/com/lovenav/controller/UrlAndCateController.java
index 336cc33..6531931 100644
--- a/src/main/java/com/lovenav/controller/UrlAndCateController.java
+++ b/src/main/java/com/lovenav/controller/UrlAndCateController.java
@@ -16,6 +16,10 @@ import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.jsoup.Connection;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -24,8 +28,14 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URISyntaxException;
+import java.net.URL;
import java.util.*;
import java.io.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
@RestController
@RequestMapping("/UrlAndCate")
public class UrlAndCateController {
@@ -279,4 +289,75 @@ public class UrlAndCateController {
return JSON.toJSONString(result);
}
}
+ @RequestMapping ("/disposeUrl")
+ public String disposeUrl(String url){
+ HashMap result = new HashMap<>();
+ HashMap data = new HashMap<>();
+
+ Connection conn = Jsoup.connect(url);
+ Document document = null;
+ try {
+ document = conn.get();
+ } catch (IOException e) {
+ e.printStackTrace();
+ result.put("code", 500);
+ result.put("msg", "url不可用");
+ // handle error
+ }
+ result.put("code", 200);
+ result.put("msg", "解析成功");
+ //添加标题
+ data.put("title",document.title());
+
+ Elements linksContent = document.select("meta[name='keywords']");
+ Elements linksDescription = document.select("meta[name='description']");
+ Elements linksIcon = document.select("link[rel$=icon]");
+
+
+ String fengli="content=\"(.*?)\"";
+ Pattern pafengli=Pattern.compile(fengli);
+ Matcher description = pafengli.matcher(linksDescription.toString());
+ String target;
+ if(description.find())
+ {
+ target = description.group(1); //group为捕获组
+ data.put("description",target);
+ }
+ else
+ {
+ data.put("description","未找到");
+ }
+
+ description = pafengli.matcher(linksContent.toString());
+ if(description.find())
+ {
+ target = description.group(1); //group为捕获组
+ data.put("keywords",target);
+ }
+ else
+ {
+ data.put("keywords","未找到");
+ }
+ String fengli1="href=\"(.*?)\"";
+ Pattern pafengli1=Pattern.compile(fengli1);
+ description = pafengli1.matcher(linksIcon.toString());
+ if(description.find())
+ {
+ target = description.group(1); //group为捕获组
+ try {
+ new URL(target).toURI();
+ data.put("iconUrl",target);
+ } catch (MalformedURLException e) {
+ data.put("iconUrl","url不合法");
+ } catch (URISyntaxException e) {
+ data.put("iconUrl","url不合法");
+ }
+ }
+ else
+ {
+ data.put("iconUrl","未找到");
+ }
+ result.put("data",data);
+ return JSONObject.toJSONString(result);
+ }
}
diff --git a/src/main/java/com/lovenav/dao/NavDao.java b/src/main/java/com/lovenav/dao/NavDao.java
index 1bbabe0..c04327d 100644
--- a/src/main/java/com/lovenav/dao/NavDao.java
+++ b/src/main/java/com/lovenav/dao/NavDao.java
@@ -1,11 +1,13 @@
package com.lovenav.dao;
import com.lovenav.entity.Nav;
+import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
+@Mapper
public interface NavDao {
int deleteByNavName(String navName);