{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihtnsagr2wv6b6zjxs7rovzxkuefuwjche6luz7wpidtro2y6scsq",
    "uri": "at://did:plc:hzgu7qyp34ofph3btawzwyw4/app.bsky.feed.post/3mhem6xq5fml2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreicptol34ojlf4o6ogdn4ngop3cskq3g62dwnrob5whbsqmta6du5m"
    },
    "mimeType": "image/png",
    "size": 53712
  },
  "path": "/bitsap/articles/e3701908b475f1",
  "publishedAt": "2026-03-17T07:55:29.000Z",
  "site": "https://zenn.dev",
  "textContent": "はじめに\nWeb Reader APIという、URLを投げるとAI要約付きのMarkdownを返すAPIを開発しています。\nhttps://rapidapi.com/bitsap/api/webreader-ai\nReadability(Firefoxのリーダーモードに使われている汎用抽出エンジン)だけでは日本のサイトに対応しきれず、43サイトの専用パーサーを実装することになりました。\nこの記事では、各サイトのHTML構造と格闘する中で遭遇した技術的なハマりどころ、設計判断、そして「なぜ汎用パーサーでは日本のサイトがうまく抽出できないのか」を赤裸々に書きます。\n\n なぜ汎用パーサーで...",
  "title": "43サイトの専用パーサーを実装して分かった、日本のWebサイトの「闇」と「光」"
}