3 ポイント 投稿者 GN⁺ 2024-04-15 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2024-04-15
Hacker Newsのコメント
  • WebサイトをMarkdownに変換するには、互いに異なる3つの問題がある。ページのコンテンツを漏れなく取得すること、広告や付随コンテンツを取り除くこと、正しいレイアウトとセクション形式を得ること。
    コンテンツの高精度抽出と整形には、Trafilatura、Newspaper4k、python-readabilityベースの解法がデフォルト状態で最もうまく動き、漏れのない収集にはスクレイピングサービスとSeleniumの組み合わせがよく合う。
    このツールが何を違う形で、あるいはよりうまくやっているのか気になる。この分野はしばらく停滞していたので、学んだことを聞いてみたい。

    • 特にJavaScriptランタイムがない、あるいは使いたくない環境では、徹底的なスクレイピングは難しい。
      コンテンツ抽出ではPostlightライブラリの方式がかなりきれいだった。HTMLノードごとにテキスト長、リンク密度、CSSクラスのようなヒューリスティクスでスコアを付け、最も高いスコアのノードを選ぶ。個人用のあとで読むアプリを作る際にSwiftへ移植してみた。
      https://github.com/postlight/parser
    • 自分の記事用Webスクレイパーは、今はPlaywrightと広告ブロッカーに移行したうえで、ページにMozillaのreadabilityを実行し、その結果をLLMが検査している。
      検査に失敗した場合は、ページ全体のHTMLコンテキストを切り出し、PandocでMarkdownに変換したあと、LLMがMarkdownから本文を抽出する流れになっている。
  • Vercelか。じゃあトラフィックが集中したら請求額には気をつけたほうがいい。Vercelが使い続けるよう促してくるやり方のまま使っていないことを願う。

    • ドキュメント全体で使うよう誘導しているのが少し苦い。WebPひとつで十分なこともあるのに。
      バスのミームそのままで、幸せなのはユーザーと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/

    • https://usescraper.com の創業者です。今では単一URLスクレイピングのオプションもあります: https://docs.usescraper.com/api-reference/scraper/scrape
      1ページあたり$0.001で、ヘッドレスChromeブラウザを使用します。結果は高速で、使った分だけ支払えばよいです。
    • 良さそうだが、url2textにはAPIがないように見えるし、urlboxにはテキストだけ欲しいときのスクリーンショットをスキップするオプションがないように見える。
      テキストだけ必要ならかなり高く見える。
  • WebサイトがCookieメッセージを出すと、このツールはそこで詰まり、実際のコンテンツを解析できないようだ。
    たとえば https://www.cnbc.com/ を入れてみたところ、Cookieメッセージとその周辺の法的文言だけがMarkdownとして生成された。

    • そういうものを回避するのは簡単ではないが、こういう形なら動作することもある: https://url2text.com/u/wYVake
      さまざまな種類のページレンダリングで発生する多くのエッジケースをすでに処理している成熟したAPIの上に構築できたのは幸運だった。
  • htmltidyとPandocのHTML→Markdown変換だけでも、十分実用になった。
    http://www.html-tidy.org/
    https://pandoc.org/

    • tidyは初めて聞いたが、有望に見える。
      最終テンプレートのHTML全体にこれをかけて、残っている不正な構造を見つけてみたくなる一方で少し怖くもある。修正結果がどれだけ構造的かによっては、テストスイートにもできそうだ。
  • 自分もとてもよく似たsmort.ioを作った。記事URLの前に smort.io/ を付けるだけで、簡単に編集、注釈付け、共有ができる。
    ArXiv論文でも動作する。
    SmortのShow HN投稿はこちら: https://news.ycombinator.com/item?id=30673502

    • jina AIの最近のプロジェクトは、このアイデアのクローンだったのか。
      https://jina.ai/reader/
  • 複雑なマーケティングページで試してみたが、とてもうまく処理していた。
    共有できる範囲で、ホストにどの程度の負荷がかかるのか気になる。無料で運用を続けられるレベルなのか、それとも最終的にはコスト効率が悪くなるのか知りたい。

    • ヘッドレスChromeインスタンスを立ち上げるので、やや重い。この部分は最適化を検討する予定だ。
      そのほかではGPT-4が高価だが、今のところコストは無視できる程度なので期待している。長く維持できそうだ。
  • AIが不要なケースの1つです。ページからコンテンツを抽出する非常によく機能するアルゴリズムがあり、その実装の1つが https://github.com/buriy/python-readability です

    • 数年前にボイラープレート除去ツールを比較したとき、デフォルト状態では jusText が最も良い結果を出していたと記憶しています
      readability やいくつかの他のライブラリも使いました。最近の最先端がどうなっているのか気になります
    • ここでは AI はオプションです。Markdown に変換する前に HTML を整理するために readability を使っています
    • 最後に readability を使ったときは記事にはよく効きましたが、他の種類のページでは苦戦していました
      欲しい以上に多くのコンテンツを削除してしまっていました
    • ここで、そのツールだけで AI なしに同じことをどう実現できるのか気になります
    • 正直、ほとんど黒魔術だろうと予想していましたが、プロジェクトの核心は苦労して積み上げたのが明らかな正規表現の束のように見えます。素晴らしいです
  • いつも驚かされる Pandoc(https://pandoc.org/) は、こういうことを非常にうまくやります。事実上、ほぼすべての他の文書形式にも対応しています

    • 同意します。Pandoc は存在するツールの中でも指折りに有用なのに、ほとんど言及されないツールです
      驚くほど優れていて、使いやすく、よく動きます。この分野では新しいツールがよく登場しますが、Pandoc 以外を使わせるには、本当にユニークで説得力のある機能があるか、特定のユースケースに高度に最適化されている必要があると思います
  • すばらしいです。自分が読むすべてのページにこれを適用して、どこかに保存してくれるブラウザー拡張があればいいのにと思います

    • Firefox 用 Singlefile: https://addons.mozilla.org/en-US/firefox/addon/single-file/
    • 自分が手動で使っている選択肢は Markdown clipper です
      https://github.com/deathau/markdown-clipper
      似た代替拡張は数十個くらいあるはずです
    • Wallabag + Obsidian + Wallabag Browser Ext の組み合わせが良いです。手動トリガーですが優秀です
    • Omnivore はウェブアーカイブを使ってコピーを保存します
      https://omnivore.app/
    • Pocket、Readwise Reader、Matter のようなアプリが、すでにそういうことを説明しているのではないかと思います
      修正: 読むのが早すぎました。自動的・体系的に処理するという部分を見落としていました