Show HN: WebページをMarkdownに整理・変換するMarkdownDown
(markdowndown.vercel.app)- MarkdownDown は任意のWebページをきれいなMarkdown文書に変換するツール
- 変換結果では 画像のダウンロード をサポートしており、ローカルに保存した画像をMarkdownにリンクできる
- 非コンテンツ要素の削除 オプションで本文と無関係な要素を減らせる
- Markdownの出力結果に GPT Filter を適用する選択肢も提供している
- Webページの内容をMarkdownで保存したい、あるいは画像も含めて整理したいユーザーに有用
WebページをMarkdownに整理
- MarkdownDown はWebページをきれいなMarkdownに変換する
- 変換過程で画像をダウンロードし、ローカル画像へのリンクを出力結果に含められる
変換オプション
-
本文中心の整理
- Remove non-content elements オプションでコンテンツではない要素を削除する
-
画像処理
- Download images locally and link them オプションで画像をローカルに保存してリンクする
-
GPT Filterの適用
- Apply GPT Filter on Markdown オプションでMarkdownの出力結果にGPT Filterを適用できる
1件のコメント
Hacker Newsのコメント
WebサイトをMarkdownに変換するには、互いに異なる3つの問題がある。ページのコンテンツを漏れなく取得すること、広告や付随コンテンツを取り除くこと、正しいレイアウトとセクション形式を得ること。
コンテンツの高精度抽出と整形には、Trafilatura、Newspaper4k、python-readabilityベースの解法がデフォルト状態で最もうまく動き、漏れのない収集にはスクレイピングサービスとSeleniumの組み合わせがよく合う。
このツールが何を違う形で、あるいはよりうまくやっているのか気になる。この分野はしばらく停滞していたので、学んだことを聞いてみたい。
コンテンツ抽出ではPostlightライブラリの方式がかなりきれいだった。HTMLノードごとにテキスト長、リンク密度、CSSクラスのようなヒューリスティクスでスコアを付け、最も高いスコアのノードを選ぶ。個人用のあとで読むアプリを作る際にSwiftへ移植してみた。
https://github.com/postlight/parser
検査に失敗した場合は、ページ全体のHTMLコンテキストを切り出し、PandocでMarkdownに変換したあと、LLMがMarkdownから本文を抽出する流れになっている。
Vercelか。じゃあトラフィックが集中したら請求額には気をつけたほうがいい。Vercelが使い続けるよう促してくるやり方のまま使っていないことを願う。
バスのミームそのままで、幸せなのはユーザーとVercel、悲しいのは財布。
もちろん動的スケーリングや縮小が必要なら別だけど。
HNトラフィックを処理するために特別なことは何もしておらず、ただの基本的なNext.jsアプリだった。
画像ダウンロードとGPTベースのフィルタリングを提供するのは良いアイデアだ。
去年似たようなツールを作ったが、そうした機能はない: https://url2text.com/
UIは遅いかもしれないが、ホームページで出力例を見られる。
基盤APIはUrlboxのWebサイトスクリーンショットAPIだが、直接使えばはるかに性能が良い。JavaScriptレンダリング済みHTML、メタデータ、スクリーンショットと一緒にMarkdownを一度にリクエストできる: https://urlbox.com/extracting-text
結果をS3互換ストレージにそのまま保存することもできる: https://urlbox.com/s3
Webhookで受け取ることもできる: https://urlbox.com/webhooks
サイドプロジェクトでUrlboxのMarkdown機能を使って月100万回以上レンダリングしているが、この種のMarkdownは埋め込みやプロンプトに使うのにずっと向いている。
Webサイト全体をこういう形でスクレイピングしたいなら、dctannerの新しいツールも見る価値がある: https://usescraper.com/
1ページあたり$0.001で、ヘッドレスChromeブラウザを使用します。結果は高速で、使った分だけ支払えばよいです。
テキストだけ必要ならかなり高く見える。
WebサイトがCookieメッセージを出すと、このツールはそこで詰まり、実際のコンテンツを解析できないようだ。
たとえば https://www.cnbc.com/ を入れてみたところ、Cookieメッセージとその周辺の法的文言だけがMarkdownとして生成された。
さまざまな種類のページレンダリングで発生する多くのエッジケースをすでに処理している成熟したAPIの上に構築できたのは幸運だった。
htmltidyとPandocのHTML→Markdown変換だけでも、十分実用になった。
http://www.html-tidy.org/
https://pandoc.org/
最終テンプレートのHTML全体にこれをかけて、残っている不正な構造を見つけてみたくなる一方で少し怖くもある。修正結果がどれだけ構造的かによっては、テストスイートにもできそうだ。
自分もとてもよく似たsmort.ioを作った。記事URLの前に
smort.io/を付けるだけで、簡単に編集、注釈付け、共有ができる。ArXiv論文でも動作する。
SmortのShow HN投稿はこちら: https://news.ycombinator.com/item?id=30673502
https://jina.ai/reader/
複雑なマーケティングページで試してみたが、とてもうまく処理していた。
共有できる範囲で、ホストにどの程度の負荷がかかるのか気になる。無料で運用を続けられるレベルなのか、それとも最終的にはコスト効率が悪くなるのか知りたい。
そのほかではGPT-4が高価だが、今のところコストは無視できる程度なので期待している。長く維持できそうだ。
AIが不要なケースの1つです。ページからコンテンツを抽出する非常によく機能するアルゴリズムがあり、その実装の1つが https://github.com/buriy/python-readability です
readability やいくつかの他のライブラリも使いました。最近の最先端がどうなっているのか気になります
欲しい以上に多くのコンテンツを削除してしまっていました
いつも驚かされる Pandoc(https://pandoc.org/) は、こういうことを非常にうまくやります。事実上、ほぼすべての他の文書形式にも対応しています
驚くほど優れていて、使いやすく、よく動きます。この分野では新しいツールがよく登場しますが、Pandoc 以外を使わせるには、本当にユニークで説得力のある機能があるか、特定のユースケースに高度に最適化されている必要があると思います
すばらしいです。自分が読むすべてのページにこれを適用して、どこかに保存してくれるブラウザー拡張があればいいのにと思います
https://github.com/deathau/markdown-clipper
似た代替拡張は数十個くらいあるはずです
https://omnivore.app/
修正: 読むのが早すぎました。自動的・体系的に処理するという部分を見落としていました