用cursor写了个网页内容提取工具,带api,从而让AI能够读网页链接

更新了第二版项目,请见 用cursor写了个网页内容提取器(第二版),支持文章/论坛/微信/知乎,支持输出文本/Markdown/HTML,从而让AI能够读网页链接 - 开发调优 - LINUX DO

起因

因为之前用下面这个项目的时候,有使用限制,请求多了之后就会被认为是在DDoS攻击它的网址,而且提取的内容有点不太符合我的要求(无关元素有点多)。然后我就用cursor照着这个功能写了一个带api的,方便在别的项目里使用。

它将任何 URL 转换为 LLM 友好的输入,并使用 https://r.jina.ai/https://your.url 。免费提高您的代理和 RAG 系统的输出。

项目地址

因为喜欢白嫖各种容器平台,所以一般我写项目会写可以部署到vercel或者render的,所以这个项目可以一键部署到vercel。

:link: 在线演示

访问 https://web-content-extractor.vercel.app 体验在线版本。

API请求示例,访问 https://web-content-extractor.vercel.app/api/extract?url=https://www.bbc.co.uk/news/articles/c4gxqep4zk3o




使用体验

目前用下来看,大部分网页是可以正常提取的,除了天气预报的网页,以下是我接入给ai后的效果,模型是gemini-2.0-flash-exp

最后

  • 要是有佬友可以帮忙优化一下提取页面的效果就更好了,如果你喜欢这个项目,请不妨点个 Star​:star2:
  • 如果佬友们有项目的意见的话可以提一下,欢迎提交 IssuesPull requests
57 个赞

来支持一下,感谢分享 :tieba_013:

2 个赞

这也太酷了佬 :star_struck:

2 个赞

cool!

4 个赞

太酷啦~

2 个赞


有点怪

2 个赞


我还在想 有点怪 是ai说的呢

2 个赞

噢,想起来了示例网址是fork项目的小号,忘记更新了,正常应该是下面这样的,现在更新了

2 个赞

赞赞赞:+1::+1::+1:

3 个赞

大佬太强了 :tieba_087:

2 个赞

哇,面包大大的又一新作

1 个赞

用你网页测试下发现 公众号的内容提取不了 jina 可以提取

1 个赞

用起来不错

1 个赞

我忘记试这个了,晚点改改

poe快到期了,非常需要这个!

1 个赞

太强了大佬 :tieba_003:

1 个赞

太强了!

1 个赞

用ai糊了一下,可以在nextchat当搜索插件使用

{
  "openapi": "3.1.0",
  "info": {
    "title": "Web Content Extractor",
    "description": "Extract content from a given URL using the Web Content Extractor API.",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://web-content-extractor.vercel.app"
    }
  ],
  "paths": {
    "/api/extract": {
      "get": {
        "operationId": "ExtractWebContent",
        "description": "Extract content from a given URL.",
        "deprecated": false,
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "The URL of the webpage from which to extract content.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful extraction of web content.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "content": {
                      "type": "string",
                      "description": "The extracted content from the webpage."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The provided URL is invalid or missing."
          },
          "500": {
            "description": "Internal server error. The API encountered an issue while processing the request."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {}
  }
}

4 个赞

牛呀牛呀,感谢分享

1 个赞

知乎好像提不了,个人使用,完全可以做到,只是并发低点