Skip to content

opendatalab/magic-html

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

magic-html - 通用HTML数据提取器

欢迎使用magic-html,这是一个旨在简化从HTML中提取主体区域内容的Python库。

项目描述

magic-html提供了一套工具,能够轻松地从HTML中提取主体区域内容。无论您处理的是复杂的HTML结构还是简单的网页,这个库都旨在为您的HTML抽取需求提供一个便捷高效的接口。

特点

  • 返回主体区域html结构,可自定义输出纯文本/markdown
  • 支持多模态抽取
  • 支持多种版面extractor,文章/论坛
  • 支持latex公式提取转换

安装

pip install https://github.com/opendatalab/magic-html/releases/download/magic_html-0.1.2-released/magic_html-0.1.2-py3-none-any.whl

使用

from magic_html import GeneralExtractor

# 初始化提取器
extractor = GeneralExtractor()

url = "http://example.com/"
html = """

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />  
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in literature without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
"""

# 文章类型HTML提取数据
data = extractor.extract(html, base_url=url)

# 论坛类型HTML提取数据
# data = extractor.extract(html, base_url=url, html_type="forum")

# 微信文章HTML提取数据
# data = extractor.extract(html, base_url=url, html_type="weixin")

print(data)

benchmark report

根据html页面类型,文章/论坛,对比不同开源通用抽取框架抽取准确性

文章类型:选取头部新闻、博客站点共标注158个html页面

╒══════════════════════╤═════════════╤════════════╤═══════════╕
│ funcprec_meanrec_meanf1_mean │
╞══════════════════════╪═════════════╪════════════╪═══════════╡
│ magic_html0.9088650.950320.92913  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura0.8334340.9123840.871124 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura_fallback0.8312290.9337130.879496 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ readability-lxml0.865870.8613910.863625 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ newspaper3k0.4095850.3720830.389935 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ goose30.5257170.4576690.489339 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ justext0.2249450.1170920.154014 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ gne0.8288490.6291120.715299 │
╘══════════════════════╧═════════════╧════════════╧═══════════╛

论坛类型:选取头部论坛、问答站点与开源建站框架搭建站点共103个html页面

╒══════════════════════╤═════════════╤════════════╤═══════════╕
│ funcprec_meanrec_meanf1_mean │
╞══════════════════════╪═════════════╪════════════╪═══════════╡
│ magic_html0.7962520.8268190.811248  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura0.7160090.6959470.705835  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ trafilatura_fallback0.7303040.6913280.710282  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ readability-lxml0.7880180.4450870.568867  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ newspaper3k0.5969760.2983220.397837  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ goose30.6758350.3129690.427821  │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ justext0.1758890.05176280.0799863 │
├──────────────────────┼─────────────┼────────────┼───────────┤
│ gne0.810030.3897090.526241  │
╘══════════════════════╧═════════════╧════════════╧═══════════╛

许可

本项目代码采用Apache 2.0 license授权。

鸣谢