2000〜2014年に運営されていた匿名掲示板「いちごびびえす(いちごBBS)」の経済/経済学板の残骸を、 Internet Archive の Wayback Machine から集めて、SQLite の掲示板データベースに復元するツールです。
| したいこと | 使うもの |
|---|---|
| ブラウザで読む | 公開サイト https://p72.github.io/ichigo-econ-archive/ 、または zip を展開して index.html を開く(→「読むだけの人へ」) |
| 検索・集計・AI で読む | 作成済みの検索用 DB ichigo_posts-2026-10-01.sqlite.zip を展開して使う(→「検索用 DB を作る・使う」) |
| 自分で集め直す | 収集ツール ichigo_archiver.py で Wayback Machine から集める(→「はじめかた」) |
配布物は 2 つで、どちらも releases/ にあります。
ichigo-econ-archive-2026-10-01.zip(約 34MB): 収集ツールで集めた結果を読める形に書き出したもの。
中身は公開サイトと同じ HTML に、説明書と検索用 DB を作るツールを添えていますichigo_posts-2026-10-01.sqlite.zip(約 34MB): 上の zip から作った検索用 DB。展開すると
ichigo_posts.sqlite(約 110MB、1 行 = 1 レス)が出てきます。Python なしで、すぐ SQL で調べたり AI に渡したりできます収集ツールについて:
>>554)を辿る表示、閲覧用 HTML・CSV の書き出しができます| 何か | 大きさ | 配布 | |
|---|---|---|---|
| 収集ツール(このリポジトリ) | Wayback から集めて収集用 DB を作り、そこからアーカイブを書き出す | 数百 KB | 配る |
収集用 DB(ichigo.db) | Wayback の原本(生 HTML)、どこまで集めたかの記録、取り出したレス | 約 850MB | 配らない(原本・メール欄を含むため) |
アーカイブ本体(ichigo-econ-archive-YYYY-MM-DD.zip) | 復元した経済板を読める HTML にしたもの+説明書+ビルドツール | 約 34MB | 配る |
検索用 DB(ichigo_posts.sqlite) | アーカイブ本体から build_posts_db.py で作る、検索・分析用の DB | 約 110MB(全文検索つき約 360MB) | 作成済みの版(全文検索の索引なし)を zip で配る。受け取った人が作ることもできる |
Wayback Machine
│ 収集ツール(enumerate → fetch → parse)
▼
ichigo.db ………………………… 収集用 DB(原本・作業記録・レス) ← 手元だけ
│ release
▼
ichigo-econ-archive-YYYY-MM-DD.zip … アーカイブ本体(読める HTML) ← 配る
│ build_posts_db.py(zip に同梱)
▼
ichigo_posts.sqlite ………… 検索用 DB ← 受け取った人が作る
矢印は一方向です。zip から ichigo.db は作れません(原本・メール欄・スパム・取得の記録が入っていないため)。
同じ ichigo.db がほしい人は、収集ツールと URL 集(export-urls)で Wayback から集め直してください。
収集用 DB には、当時の書き込み本文やメールアドレスが含まれます。扱いは末尾の「集めたデータの扱い」を参照してください。
Python も DB も要りません。
releases/ にある ichigo-econ-archive-YYYY-MM-DD.zip をダウンロードする(約 34MB)index.html をブラウザで開くindex.html(トップ)から、スレが立った年(2000〜2013 年)ごとの一覧に進めます。一覧にはスレ番号・スレタイ・レス数・期間が並びますindex.html?q=日銀 のように URL に付けて開くこともできます>>554 にマウスを乗せる(スマホはタップ)と、アンカー先のレスがポップアップしますindex.html を開いてください検索用 DB(ichigo_posts.sqlite)は、1 行 = 1 レスの SQLite データベースです。
キーワードや人で横断して探したり、集計したり、AI に渡して日本語で質問したりするのに向いています。
作成済みのものをダウンロードするのが一番手軽です。収集ツールや ichigo.db は要りません。
releases/ichigo_posts-2026-10-01.sqlite.zip をダウンロードする(約 34MB)ichigo_posts.sqlite(約 110MB)が出てくるこれは全文検索の索引を省いた軽い版です。検索は LIKE で行えます(18 万件でも 1 秒かからない)。
全文検索の索引がほしいときは、この DB に次の SQL を 1 回実行すると追加できます(40 秒ほど、約 360MB になる)。
CREATE VIRTUAL TABLE posts_fts USING fts5(body, name, thread_key UNINDEXED, no UNINDEXED, tokenize='trigram');
INSERT INTO posts_fts(body, name, thread_key, no) SELECT body, name, thread_key, no FROM posts;
閲覧用 HTML の zip に入っている build_posts_db.py でも、同じ DB を作れます。
python --version(Mac は python3 --version)と打つとわかりますcmd と打って Enter、
Mac はターミナルで cd と打ってから、フォルダをウィンドウにドラッグして Enterpython を python3 に)python build_posts_db.py # 全文検索の索引つき(約 360MB・30 秒ほど)
python build_posts_db.py --no-fts # 索引なし(約 110MB・数秒)。AI に渡すならこちら
同じフォルダに ichigo_posts.sqlite ができます。zip を展開せずに python build_posts_db.py ichigo-econ-archive-2026-10-01.zip でも作れます。
同じ名前のファイルがあるときは上書きせずに止まるので、作り直すときは消すか -o 別の名前.sqlite を付けてください。
| 表 | 1 行の単位 | 列 |
|---|---|---|
posts | レス 1 件(179,454 行) | thread_key スレ(economy/0126)、no レス番号、name 名前、date 日付(2002/05/18(Sat) 18:03)、uid ID(2009 年 5 月以降)、trip トリップ、handle_k まとめログのコテハン番号、body 本文 |
threads | スレ 1 本(1,034 行) | thread_key、title スレタイ、posts レス数 |
handles | まとめログのコテハン 1 人(21 行) | k 番号、name まとめログでの登録名、post_count まとめログ上の投稿数 |
posts_fts | 全文検索の索引(--no-fts では作らない) | body、name、thread_key、no |
yo***@example.jp のように伏せてありますhandle_k は、まとめログがそのコテハンの書き込みとして載せていたレスにだけ入っています(名前欄が同じでも、載っていなければ空)-- 全文検索(3 文字以上の語。索引つきで作ったとき)
SELECT thread_key, no, name, snippet(posts_fts, 0, '【', '】', '…', 15)
FROM posts_fts WHERE posts_fts MATCH '"量的緩和"' LIMIT 20;
-- 2 文字以下の語や、索引なしのときは LIKE(18 万件でも 1 秒かからない)
SELECT thread_key, no, name, date, substr(body, 1, 80)
FROM posts WHERE body LIKE '%日銀%' AND date LIKE '2001/%';
-- ある人の書き込み
SELECT thread_key, no, date, body FROM posts
WHERE name = 'ドラエモン' AND body LIKE '%白川%' ORDER BY date;
-- スレの一部を読む
SELECT no, name, date, body FROM posts
WHERE thread_key = 'economy/0126' AND no BETWEEN 540 AND 560 ORDER BY no;
-- 年ごとのレス数
SELECT substr(date, 1, 4) AS 年, count(*) FROM posts
WHERE date GLOB '[0-9][0-9][0-9][0-9]/*' GROUP BY 年;
開く道具は、無料の DB Browser for SQLite(画面で表を見たり SQL を実行したりできる)、sqlite3 コマンド、Python の sqlite3 モジュールなどが使えます。
ichigo_posts.sqlite を、ファイルを扱える AI に渡すと、日本語で質問できます。
渡し方:
ichigo_posts-2026-10-01.sqlite.zip(約 34MB)をそのまま渡せることがあります
(zip を中で展開できるサービスの場合)。うまくいかないときは、展開した ichigo_posts.sqlite(約 110MB)を渡してくださいichigo_posts.sqlite を作業フォルダに置いて、
「このフォルダの ichigo_posts.sqlite を使って」と頼みます。大きさの上限を気にせずに使えます最初に、次の説明をそのまま貼り付けると、AI が迷わず SQL を書けます。
ichigo_posts.sqlite は、匿名掲示板「いちごびびえす」経済/経済学板(2000〜2014年)の
書き込みを集めた SQLite です。
- posts: 1 行 1 レス。thread_key(例 economy/0126), no(レス番号), name(名前),
date(例 2002/05/18(Sat) 18:03), uid(ID), trip(トリップ), handle_k(まとめログのコテハン番号), body(本文)
- threads: スレ。thread_key, title, posts(レス数)
- handles: まとめログのコテハン。k, name, post_count
本文は body LIKE '%語%' で探してください。答えには必ず thread_key と no を付けてください。
頼み方の例:
ichigo_posts.sqlite は、いちごBBS経済板(2000〜2014年)のレスを集めた SQLite です。posts 表が 1 行 1 レスです。
2002 年に『インフレ目標』を議論したスレと主な論者を、スレ番号とレス番号つきで挙げてください」economy/0126 の 540〜560 番の議論の流れをまとめてください」コツ:
https://p72.github.io/ichigo-econ-archive/economy_0126.html#556 のように、#レス番号 でそのレスに飛べますpython ichigo_archiver.py enumerate # ① Wayback の保存 URL 一覧を取り込む(数分)
python ichigo_archiver.py fetch --limit 500 # ② 500 件ダウンロード(約 25 分。何度でも続きから)
python ichigo_archiver.py parse # ③ 取れたページをレスに分解
python ichigo_archiver.py stats # 収集状況
②③を繰り返すほどレスが増えます。fetch は「新しいレスが取れる見込み」の高い順に取ります。
並び順は実行時点の DB から計算するので、fetch → parse を交互に回すと効率よく埋まります。
fetch --dry-run で順番と段ごとの件数を確認できます。
python ichigo_archiver.py threads # スレ一覧(0レス=タイトルだけ判明)
python ichigo_archiver.py search 量的緩和 日銀 # 全文検索(AND)
python ichigo_archiver.py search デフレ --k 001 # まとめログのコテハン番号で絞る(001=ドラエモン)
python ichigo_archiver.py show 0126 556 # アンカーを辿って会話の流れで表示
python ichigo_archiver.py handles # まとめログのコテハン一覧
python ichigo_archiver.py export-html out # 閲覧用 HTML(out/index.html を開く)
python ichigo_archiver.py export-csv posts.csv # 全レスを CSV に
show の表示例(↑ アンカー先を遡ったレス、▶ 指定したレス、↓ 返信):
■ インフレ・ターゲティング導入の是非について(economy/0126)
↑ 554 :どんたく名無しさん:2002/05/18(Sat) 17:55
>>550
…
▶ 556 :ドラエモン:2002/05/18(Sat) 18:03
>>554
…
↓ 558 :554:2002/05/18(Sat) 18:12
>>556
…
遡る深さは --up(既定 5)、返信の深さは --down(既定 1)。スレ番号は 0126 / 126 / economy/0126 のどれでも可。
閲覧用 HTML では、本文の >>554 にマウスを乗せる(スマホはタップ)とアンカー先がポップアップします。
python ichigo_archiver.py release # → ichigo-econ-archive-(日付).zip と ichigo_posts-(日付).sqlite.zip
python ichigo_archiver.py release --date 2026-10-01 --out releases/ichigo-econ-archive-2026-10-01.zip
python ichigo_archiver.py release --no-db # 検索用 DB の zip は作らない
release は 2 つの zip を作ります。検索用 DB の zip は、閲覧用 HTML の zip と同じ場所に、その zip から
build_posts_db.py --no-fts で作った ichigo_posts.sqlite を固めたものです(中身が必ず一致します)。
閲覧用 HTML の zip の中身は、閲覧用 HTML(スレごと+index.html)、説明書 README.txt、ビルドツール build_posts_db.py です。
配布用なので、スパムとメール欄は入れず、本文中のメールアドレスは `yo*@example.jp のように伏せます**
(手元の ichigo.db はそのまま)。HTML の各レスには、見た目を変えずに日付・ID・トリップ・コテハン番号を
data 属性で埋め込んであり、build_posts_db.py はそれを読んで ichigo_posts.sqlite` を作ります。
zip を受け取った人が検索用 DB を作る手順は、上の「検索用 DB を作る・使う」にあります。
Wayback に残る 7 万件超の URL のうち、DB の中身に実際に使われているのは千数百件だけです。
export-urls はその URL(日時付き)だけを書き出します。本文は含まないので、配っても書き込みの再配布にはなりません。
python ichigo_archiver.py export-urls urls.tsv # 手元の DB から URL 集を作る(数百 KB)
python ichigo_archiver.py --db new.db import-urls urls.tsv # 別の DB に登録
python ichigo_archiver.py --db new.db fetch # その URL だけ取得(千数百件なら 1 時間前後)
python ichigo_archiver.py --db new.db parse # 同じレスが再現される
同じレスが複数のスナップショットにあるときは「本文が長い方、同じ長さなら古い方」を採用するので、 取得や解析の順番によらず同じ結果になります(Wayback 側で保存が消えていなければ)。
| コマンド | 内容 |
|---|---|
enumerate | Wayback CDX API から保存 URL を取り込む。--only ホスト で一部だけ、--host 新ホスト で追加 |
add-url URL… | 見つけた URL を手で追加(https://web.archive.org/web/2007…/http://… の形のままで可) |
fetch | 未取得をダウンロード。--limit N、--match 文字列(URL 絞り込み)、--dry-run(順番だけ表示)、--oldest(古い順) |
parse | 未解析のページをレスに分解。--all で全部作り直し(解析ルールを直したとき) |
stats / threads / handles | 収集状況 / スレ一覧 / コテハン一覧 |
search 語… | 全文検索。--k 001 でコテハン絞り込み、-n で件数 |
show スレ レス | アンカーを辿って表示。--up --down |
export-html DIR / export-csv FILE | 書き出し |
release | 配布用の zip(閲覧用 HTML+README.txt+build_posts_db.py)を作る。--date --out |
export-urls FILE / import-urls FILE | DB の再現に必要な保存 URL だけの一覧(本文なし)を書き出す/読み込む |
どのコマンドも --db パス で別の DB ファイルを使えます(既定 ichigo.db)。
経済板は時期ごとにシステムとドメインが変わりましたが、スレ番号は移行時にそのまま引き継がれています。
そのため、どこで見つかったレスも economy/0126 のような同じスレにまとめています。
| 時期 | 場所 | システム | URL の形 |
|---|---|---|---|
| 2000/06〜2001/11 | www22.big.or.jp/~15ch/(いちごちゃんねる) | Aska 系 CGI(aska.cgi / readres.cgi) | readres.cgi?bo=economy&vi=0126 |
| 2001/12〜2002/06 | ichigobbs.net | 同上 | 同上 |
| 2002/06〜2003/03 | ichigobbs.com | 同上 | 同上 |
| 2003/03〜2009/10 | ichigobbs.net | 15bbs(2ch-Type BBS Ver.2.11、作者サイト「A round」) | /cgi/15bbs/economy/0126/(/L50 /1-70 /80 など) |
| 2009/11〜2014/12 | ichigobbs.org | 同上 | 同上 |
| 2009〜2019 | ichigobbs.ath.cx「いちごBBSまとめログ」 | まとめログ(ミラー) | index.php?k=001&c=000&thread=0126&no=5 |
| 2003 | rssnbl.tripod.co.jp(住人ろしあんぶる氏の過去ログ保存) | 当時のページを丸ごと保存したもの | /0648.html |
歴史は Wikipedia「いちごびびえす」による。
まとめログの k= はコテハン番号、c= はカテゴリで、スレの区別には使いません。
各システムの HTML の形と解析の詳細は docs/FORMATS.md にあります。
Wayback と CDX の仕組み、どれくらい残っていて何がなぜ欠けるのかの分析は docs/WAYBACK.md にあります。
| テーブル | 内容 |
|---|---|
captures | 保存 URL・日時・CDX のサイズ・取得状態・生 HTML(gzip) |
threads | スレタイ・最初/最後に見たスナップ日時 |
posts | レス:番号・名前・メール・日付・ID・トリップ・本文・スパム印 |
pages | レスに分解できなかったページ(スレ一覧など)の全文 |
handles | まとめログのコテハン(番号・名前・投稿数) |
post_handles | まとめログ掲載:どのレスが、どのコテハンの書き込みとしてまとめログに載っていたか(名前欄が同じだけでは付けない) |
[ va4qsJNk0c ] と表示されていました(posts.trip)ID:wWxUqj5PRwac が表示されるようになりました(posts.uid)date に入れていますposts.spam = 1。でたらめな英字のメールアドレス+URL、payday loan などの定型、2012 年以降のブランドコピー宣伝など。主に 2010年と 2013〜2014年。search と export-html では除外し、export-csv には spam 列付きで全件出します(判定の詳細は docs/FORMATS.md)captures.parsed = -1):いちごの「スレッド表示エラー」(過去ログ送り後)、15bbs 移行後の旧 URL が返す転送ページ、ドメイン失効後の駐車ページ生 HTML はすべて残しているので、解析ルールを直したら parse --all で作り直せます。
WAIT(ichigo_archiver.py 冒頭)を短くしないでください書き込みは当時の投稿者のものです。集めたデータを再配布・公開する場合は、メールアドレス(posts.mail)を
除くなど、投稿者のプライバシーに配慮してください。release で作る zip は、メール欄とスパムを入れず、
本文中のメールアドレスを伏せた形になっています。
ツールのコードは MIT License(Copyright (c) 2026 p72)。集めたデータ(書き込み)には適用されません。書き込みの権利はそれぞれの投稿者にあります。
元の README.md: https://github.com/p72/ichigo-econ-archive