V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
s82kd92l
V2EX  ›  程序员

求对 html 进行渲染与布局,输出元素相对位置的分析库

  •  
  •   s82kd92l · 2022-07-28 16:59:04 +08:00 · 1480 次点击
    这是一个创建于 848 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    目前正在做一些对网页进行分类、关键信息提取之类的机器学习模型。我们之前的做法是对网页进行自动截图,然后用 ocr 的方式提取每一个文本框的内容,以及在图中的相对位置,然后交给下游模型。但这样做就经历了 html 文字->图片 ->ocr 文字的过程,有点脱裤子放屁,而且还有很多信息损失.

    问题

    是否有一个工具或者类库,能以 html 为输入,输出 render tree 上面所有需要 render 的的文本内容 /图片,以及它们在整个 html 中的相对位置,比如 {"text": "Text 1", "x_pos": 30%, "y_pos":50%}这样的?

    尝试调研了一下 rendertron/Puppeteer ,但我主要写 python 的,看不大懂它的 api,以及如果要达到我想要的效果应该怎么用,各位大佬有什么建议吗?

    8 条回复    2022-07-29 15:38:43 +08:00
    SenLief
        1
    SenLief  
       2022-07-28 18:25:17 +08:00 via iPhone
    这是不是就是 html 解析? bs xpath 都是做这个吧。
    chendy
        2
    chendy  
       2022-07-28 18:28:06 +08:00
    试试 webdriver ?
    cansiny0320
        3
    cansiny0320  
       2022-07-28 18:42:42 +08:00
    建议还是使用 Puppeteer ,你需要输出元素相对位置的话肯定需要浏览器分析 css 渲染 dom 的
    ch2
        4
    ch2  
       2022-07-28 18:58:19 +08:00
    Puppeteer 已经是最优解了
    s82kd92l
        5
    s82kd92l  
    OP
       2022-07-28 20:27:05 +08:00
    @chendy
    @cansiny0320
    @ch2
    多谢了,webdriver 和 Puppeteer 好像都有类似的目的,哪个用起来上手容易点,更方便些呢?
    s82kd92l
        6
    s82kd92l  
    OP
       2022-07-28 20:32:48 +08:00
    https://github.com/litehtml/litehtml 这个库怎么样呢?
    amlee
        7
    amlee  
       2022-07-28 22:29:19 +08:00
    https://github.com/GeneralNewsExtractor/GeneralNewsExtractor

    这个项目好像跟你的目的有相关性,不知道对你有用没有。
    learningman
        8
    learningman  
       2022-07-29 15:38:43 +08:00
    你直接无头浏览器渲染,然后传个 js 进去读 position 不就完事了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1279 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:45 · PVG 01:45 · LAX 09:45 · JFK 12:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.