首页 > 其他分享 >获取网站元数据(标题、描述内容、图标)

获取网站元数据(标题、描述内容、图标)

时间:2023-06-10 14:33:38浏览次数:36  
标签:map String 网址 title 标题 获取 图标

做个网站导航链接的小项目,每次输入网址、标题等一系列信息很麻烦。所以想通过只输入网址自动获取相关内容。

问题描述

通过输入一个网址,点击按钮后获取该网站的标题、描述内容和图标等信息。

最开始打算用vue前端实现功能,但是由于浏览器的同源策略限制,前端无法直接从其他网站获取这些元数据。

解决方案

通过java后端实现

1.添加依赖

<dependency>
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.14.3</version>
</dependency>

2.Java代码

创建一个后端API接口,用于接收前端发送的网址,并获取网站的标题、描述内容和图标等数据。

/*
 * 获取网址中数据,标题、描述内容、图标
 * */
@GetMapping("/websiteinfo")
public AjaxResult getWebsiteInfo(String url) throws IOException {
    /*使用Jsoup库的connect方法连接到指定的URL,并使用get方法获取网页的内容。它返回一个Document对象,表示整个HTML文档。*/
    Document doc = Jsoup.connect(url).get();

    /*获取网站元数据*/
    String title = doc.title();
    Element descriptionTag = doc.select("meta[name=description]").first();
    String description = descriptionTag != null ? descriptionTag.attr("content") : "";
    Element iconTag = doc.select("link[rel=icon], link[rel=shortcut icon]").first();
    String iconLink = iconTag != null ? iconTag.attr("href") : "";

    /*返回前端*/
    Map<String, String> map = new HashMap<>();
    map.put("title", title);
    map.put("description", description);
    map.put("iconLink", iconLink);
    return AjaxResult.success(map);
}

最后将数据返回给前端接收即可,图标直接用的网址链接后面加/favicon.ico实现。


最后附上实现效果图

标签:map,String,网址,title,标题,获取,图标
From: https://www.cnblogs.com/Cloong/p/17471244.html

相关文章

  • 自定义字体/图标的使用
    图标下载网站 选择需要的图标下载代码 下载后的代码 demo_index.html里会教你怎么使用1. 拷贝到index.css将这五个文件拷贝 拷贝到新建的文件夹font 修改里面路径 2.  拷贝到index.css 3.  demo_index.html里有Unicode码 如下图使用 ......
  • Quizlet Plus 获取
    QuizletPlus获取基本流程:申请一个临时邮箱去注册,然后邀请一个新人(也是临时邮箱),这样原来的邮箱就会变成30天高级账号(注意所有的注册都应该勾选"Iamateacher"!)(1)注册临时邮箱打开浏览器搜索tempmail(或直接点击链接......
  • 网站图标
     ico必须在网站根目录下ico制作:百度在html中加入如下代码 图标 ......
  • 给第一行单元格赋值 + WPS JS获取工作表的总行数 + WPS JS获取工作表的总行数
    戳我,了解更多相关办公的小技巧给第一行单元格赋值1、在计算机中有一种ASCII编码,其中A在计算机中的表示的数字是65,a的ascii码是97,b的ascii码是98。2、从A1到F1可以看到第一个字母在变化,第2个数字始终是1,A的ascii码是65,F的ascii码是70。3、我们定义letter=65,使letter逐渐靠......
  • Vue进阶(幺贰零):父组件获取子组件验证结果
    (文章目录)一、前言在开发Vue项目过程中,代码复用之自定义组件是常做事情。当子组件为form表单的时候,父组件需要获取子组件(表单)的验证结果。尽管有prop和事件,但是有时仍然需要在JavaScript中直接访问子组件。为此可以使用ref为子组件指定一个引用ID。ref被用来给元素或子......
  • spring boot ResourceUtil工具类获取不到jar的classPath下面文件问题
    先说结论这种方式是获取不到jar里面的文件的,但是在本地可以跑,打成jar包就读取不到文件了,即便ResourceUtils是spring提供的。Filefile=ResourceUtils.getFile("classpath:temp\\file\\info.txt");spring提供的ClassPathResource对象是可以在本地和jar环境都获取到资源......
  • 用python获取文件夹中文件的路径,基础路径,后缀,复制文件等。
    #读取文件夹中文件的路径#方法一importosimportshutilwenjianjia=r'D:\Desktop\内部培训python'#文件夹绝对路径#r的作用是去除转义字符lujing=os.listdir(wenjianjia)#获取文件夹中所有文件的相对路径返回一个列表forlujing_listinlujing......
  • Python从命令行参数和配置文件获取信息
    实际开发中,很多时候需要从外部获取数据,根据用户的输入或配置信息来决定下一步应采取的行为。除了使用内置函数input()或者GUI库的控件和对话框来接收用户输入以外,还可以使用sys和argparse模块来接收命令行参数,使用configparser模块从外部配置文件中获取信息。sys模块的argv是一个包......
  • Python获取每个用户使用的CPU和内存百分比
    任务描述:编写Python程序,查看当前系统中每个用户使用的CPU和内存百分比。准备工作:安装扩展库psutil。参考代码:连续几次运行结果:......
  • 1688商品评论的获取以及应用
    如果您是一个1688电商平台的商家,了解并收集消费者对您商品的反馈和评论是非常重要的。使用API接口,您可以轻松地获取商品评论,从而更好地理解消费者的需求和意见。下面是一些获取1688商品评论的步骤。1.注册和获取API接口在1688注册账户并获取API密钥。2.请求API接口使用您......