基于 cheerio, 写了个低代码,高效解析轮子

158 天前
 sead

低代码,高效而简洁;支持正则表达式,复杂的场景也能很容易提取数据。

使用 YAML 来配置解析,可高效管理输出 JSON 结构

以下是最简单的解析形态,有个更复杂 SERP 例子在 git 中可作为学习参考。

YAML 配置

tree:
  nodes:
    title:
      selector: title
    body:
      selector: body
      attr: html
      to_markdown: true

HTML

<html lang="en">
  <head>
    <title>Cheerio Tree</title>
  </head>
  <body>
    <h1>Cheerio Tree</h1>
    <main>
      <h2>What is Cheerio Tree?</h2>
      <p><b>Cheerio Tree</b> is a powerful utility built on <b>Cheerio</b>, designed for efficient DOM parsing. It enables rapid conversion of HTML data into JSON format. When paired with YAML, it provides an intuitive and streamlined approach to data handling and transformation.</p>
    </main>
  </body>
</html>

输出

{
  "title":"Cheerio Tree",
  "body":"Cheerio Tree\n============\n\nWhat is Cheerio Tree?\n---------------------\n\n**Cheerio Tree** is a powerful utility built on **Cheerio**, designed for efficient DOM parsing. It enables rapid conversion of HTML data into JSON format. When paired with YAML, it provides an intuitive and streamlined approach to data handling and transformation."
}

传输门: https://github.com/serping/cheerio-tree

2539 次点击
所在节点    分享创造
11 条回复
Amose2024
157 天前
顶一个。不知道与 beautifulSoup 有何不同?
sead
157 天前
@Amose2024 cheerio 和 beautifulSoup 解决的需求都差不多,但是多数场景都是一些重复的数据处理逻辑,维护起来也是比较头大;目前用这个撸 serp 暂时还没碰到解决不了的.

https://serpchecking.com/ 完全基于 Cheerio-Tree 撸
kiroli
156 天前
用 cheerio 指哪打哪,感觉更直接些
sead
156 天前
@kiroli 写原生? 可能是不会设计代码结构,数据复杂时维护起来很痛苦。。之前用 python 撸了一个 amazon asin 铲子,数据过于复杂,维护起来头大。 基于痛点才撸了这个。
good1uck
156 天前
没 DEMO 看不懂
sead
156 天前
@good1uck 文档和 demo 后续会更新,近几天基于这个会发布一个 express api 辅助开发,同时可以用于生产环境的 api ,会有更新详细的 demo 。
sead
154 天前
@good1uck https://github.com/serping/express-scraper DEMO 发布了,目前有三个 API 例子。

这个是 expressjs api , 扩展非常方便
sead
154 天前
@Amose2024 https://github.com/serping/express-scraper 基于轮子的 API 应用版本,线上部署了。

其中 SERP 的较为复杂,不过按树结构方法解析,应该还是比较容易看懂的。
sead
154 天前
@kiroli https://github.com/serping/express-scraper 可以参考下这种方式怎样?里面有很直观的例子。
InsideSeed
151 天前
已 star ,看着挺不错的,但是目前似乎没有完整的文档
sead
151 天前
@InsideSeed 有一个 SVG 结构图,后续我会发布文档和一些常见场景的用法

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1058085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX