「AIGC」readLink实现url识别pdf、网页标题和内容

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: AIGC算法实现服务,通过Express接收URL,识别内容类型:HTML使用Cheerio解析,PDF用`pdf-parse`。自定义函数提取标题和内容。示例代码展示了如何处理HTTP响应,提取HTML的`<title>`及PDF文本,并提供错误处理。服务器运行在端口3000。

本文主要介绍AIGC算法,readLink实现url识别pdf、html标题和内容

一、设计思路

  • 识别url是pdf或者网页
  • 网页处理逻辑,使用cheerio解析网页
  • PDF处理逻辑,使用pdf-parse解析PDF文件
  • 自定义的函数来提取标题和内容

二、可执行核心代码

const express = require("express");
const axios = require("axios");
const ytSearch = require("yt-search");
const cheerio = require("cheerio");

const { PDFDocument } = require("pdf-lib");
const pdfParser = require("pdf-parse");

const app = express();
const port = 3000;

app.get("/read-link", async (req, res) => {
  const url = req.query.url;

  if (!url) {
    return res.status(400).send("URL is required");
  }

  try {
    const response = await axios.get(url, { responseType: "arraybuffer" });
    const contentType = response.headers["content-type"];
    let data, title;

    if (contentType.includes("text/html")) {
      const $ = cheerio.load(response.data.toString());
      title = $("title").text();
      data = $("html").html(); // 这里可以根据需要提取更具体的部分 - 通用型 需要定制化
    } else if (contentType.includes("application/pdf")) {
      // PDF处理逻辑,使用pdf-parse解析PDF文件
      const pdf = await pdfParser(response.data);
      const content = pdf.text;
      const title = extractTitleFromContent(content); // 需要自定义的函数来提取标题
      const data = extractContentFromContent(content); // 需要自定义的函数来提取内容

      res.send({ title, data });
    } else {
      res.status(415).send("Unsupported media type");
      return;
    }

    res.send({ title, data });
  } catch (error) {
    res.status(500).send(error.message);
  }
});

// 示例:从PDF内容中提取标题
// 这可能需要根据PDF的实际内容进行调整
let extractTitleFromContent = (content, index = 0) => {
  // 假设标题是第一行
  const lines = content.trim().split("\n");
  return lines[0].trim();
};

// 示例:从PDF内容中提取内容
// 这同样可能需要根据PDF的实际内容进行调整
function extractContentFromContent(content) {
  // 假设内容是除了标题之外的所有行
  const lines = content.split("\n");
  // 移除标题行
  lines.shift();
  return lines.join("\n").trim();
}

app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});
相关文章
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
2376 5
|
存储 数据采集 JSON
Open NotebookLM,一键PDF/URL转播客!
本文带你来了解,结合不同的开源模型,例如Qwen2.5-72B-Instruct, CosyVoice-300M)等,将PDF文件(比如论文paper),或者网页URL内容,转换成为有趣的播客😊。
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
11407 1
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
网络协议 前端开发 JavaScript
浏览器加载网页的幕后之旅:从URL到页面展示详解
【8月更文挑战第31天】当在浏览器地址栏输入URL并回车后,一系列复杂过程随即启动,包括DNS解析、TCP连接建立、HTTP请求发送、服务器请求处理及响应返回,最后是浏览器页面渲染。这一流程涉及网络通信、服务器处理和客户端渲染等多个环节。通过示例代码,本文详细解释了每个步骤,帮助读者深入理解Web应用程序的工作机制,从而在开发过程中作出更优决策。
440 5
|
Java 机器人 API
JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
276 9
|
XML 编解码 前端开发
wkhtmltopdf 代替 itext 将 url 转成 pdf
wkhtmltopdf 代替 itext 将 url 转成 pdf
334 0
|
人工智能 自然语言处理 前端开发
【AIGC】通过人工智能总结PDF文档摘要服务的构建
【5月更文挑战第9天】 使用Python和预训练的AI模型,结合Gradio前端框架,创建了一个文本及PDF摘要聊天机器人。通过加载&quot;FalconsAI/text_summarization&quot;模型,实现文本和PDF的预处理,包括PDF合并与文本提取。聊天机器人接收用户输入,判断是文本还是PDF,然后进行相应的摘要生成。用户可以通过运行`app.py`启动机器人,访问`localhost:7860`与之交互,快速获取内容摘要。这个工具旨在帮助忙碌的人们高效获取信息。
1073 2
|
机器学习/深度学习 人工智能 图计算
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
1762 0
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
622 0
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
375 0