以下の内容はhttps://nikkie-ftnext.hatenablog.com/entry/python-library-main-content-extractor-greatより取得しました。


Pythonライブラリ MainContentExtractor で、HTMLからメイン部分を取り出す(マークダウン変換もサポート!)

はじめに

こんなに寒いのにもう8月か〜、nikkieです。

Today(※最近) I learned な小ネタです。

目次

MainContentExtractorでHTMLからメインの部分を取り出す

https://pypi.org/project/MainContentExtractor/

inline script metadataで動かします。

% uv run script.py https://nikkie-ftnext.hatenablog.com/entry/happy-birthday-emily-chang-2024 contents.md

渡したのはエミリーちゃんのお誕生日をお祝いする記事。
マークダウンで取得できています!

### はじめに

[実は毎日「エミリーちゃんかわいい」しか考えてません](https://twitter.com/ftnext/status/1744258523196989579)、nikkieです。

(略)
  • uv 0.5.17 (Homebrew 2025-01-10)
  • Python 3.11.8
  • MainContentExtractor 0.0.4
  • HTTPX 0.28.1

知ったきっかけ

話題のbrowser-useが依存していて知りました。
https://github.com/browser-use/browser-use/blob/0.1.23/pyproject.toml#L16
MainContentExtractorは0.0.4というバージョンなので、攻めた採用に映ります1

MainContentExtractorのドキュメントより

日本語のREADMEがありました。
上記スクリプトはREADMEのHowToUseをベースにしています2

trafilaturaは非常に優れたメインコンテンツ抽出ライブラリですが、必要なデータが欠落したり、HTMLを出力できないといった問題があります。
これらの問題に対処するために、本ライブラリがあります。

trafilaturaは名前だけ聞いたことがありました3

MainContentExtractor.extract()output_format引数は、マークダウン以外も指定できます4

HTML形式の他にText形式、Markdown形式での出力もサポートしています。

マークダウンへの変換を担うのは、html2text

https://pypi.org/project/html2text/

似たツール

過去に記事にしたFireCrawlが浮かびます

  • MainContentExtractor:HTMLの取得は提供されない(HTTPXのような別ライブラリ)。マークダウン出力できる
  • FireCrawl:クロール(HTML取得)も、マークダウン出力も

私がまだ触っていないだけで、似たツールは他にもあるように思います

終わりに

Pythonライブラリ MainContentExtractor で、HTMLからメインの部分を取り出せます。

  • HTMLの取得は提供されない(別のライブラリを使う)
  • 出力はマークダウン、HTML、プレーンテキストをサポート

リポジトリは放置気味、PyPIのバージョンよりもリポジトリが最新という状況ですが、browser-useが使っているという実績があります。


  1. リポジトリを見ると、0.0.4の後にプルリクマージされてますがリリースはなさそうで、もしやうち捨てられているのかもしれません
  2. 宿題事項の1つ:response.encoding = "utf-8"と代入して常に問題ないのか(心配してるのはencodingがutf-8でないとき)
  3. 聞いた勉強会
  4. ref: https://github.com/HawkClaws/main_content_extractor/blob/6f23968db3c9223dc25547ac1e0f68dcdeea6ec2/main_content_extractor/main_content_extractor.py#L30



以上の内容はhttps://nikkie-ftnext.hatenablog.com/entry/python-library-main-content-extractor-greatより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14