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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 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}`);
});
相关文章
|
10天前
|
存储 数据采集 JSON
Open NotebookLM,一键PDF/URL转播客!
本文带你来了解,结合不同的开源模型,例如Qwen2.5-72B-Instruct, CosyVoice-300M)等,将PDF文件(比如论文paper),或者网页URL内容,转换成为有趣的播客😊。
|
3月前
|
网络协议 前端开发 JavaScript
浏览器加载网页的幕后之旅:从URL到页面展示详解
【8月更文挑战第31天】当在浏览器地址栏输入URL并回车后,一系列复杂过程随即启动,包括DNS解析、TCP连接建立、HTTP请求发送、服务器请求处理及响应返回,最后是浏览器页面渲染。这一流程涉及网络通信、服务器处理和客户端渲染等多个环节。通过示例代码,本文详细解释了每个步骤,帮助读者深入理解Web应用程序的工作机制,从而在开发过程中作出更优决策。
62 5
|
3月前
|
移动开发 资源调度 JavaScript
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
这篇文章介绍了在Vue移动端网页中使用`pdfh5`和`vue-pdf`两个插件来实现PDF文件的预览,包括滚动查看、缩放、添加水印、分页加载、跳转指定页数等功能。
2647 0
Vue移动端网页(H5)预览pdf文件(pdfh5和vue-pdf)
|
3月前
|
XML 编解码 前端开发
wkhtmltopdf 代替 itext 将 url 转成 pdf
wkhtmltopdf 代替 itext 将 url 转成 pdf
48 0
|
4月前
|
存储 文字识别 API
印刷文字识别使用问题之如何识别pdf文件中的表格
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
4月前
|
文字识别 自然语言处理
印刷文字识别使用问题之是否支持PDF文件识别
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
5月前
|
Java 机器人 API
JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
48 9
|
5月前
|
文字识别 开发工具 数据安全/隐私保护
印刷文字识别产品使用合集之可以识别一张电子发票有多页(多张图片,或者一个PDF文件)的这种发票吗
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
5月前
|
XML Java 数据处理
视觉智能开放平台操作报错合集之pdf识别报503,是什么导致的
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
|
2月前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
48 0