Fiddlerのカスタムルールスクリプトを弄ってhtmltodat的な動作をさせてみる試み v2.26 by mukiyu
これは、ローカルプロキシツールFiddlerのカスタムルールスクリプトを利用し
2ch専用ブラウザと2chサーバの間にプロキシとして介入し
・datへのリクエストをread.cgiへのリクエストに変換する
・read.cgiからのレスポンスをdat形式に変換する
ことにより、ローカルプロキシでhtmltodat的な動作ができないかと試みてみたものです。
Fiddler公式サイト:http://www.telerik.com/download/fiddler
Fiddlerのわかりやすい解説:http://blog.loadlimits.info/2009/09/%E5%AE%9F%E3%81%AFfiddler%E3%81%8C%E3%81%99%E3%81%94%E3%81%99%E3%81%8E%E3%81%9F%E3%81%AE%E3%81%A7%E3%80%81%E6%A9%9F%E8%83%BD%E3%81%BE%E3%81%A8%E3%82%81%E7%B4%B9%E4%BB%8B/
http://www.hagurese.net/blog/default.aspx?pn=Fiddler%E3%81%A8%E3%81%AF&sn=1
[使い方]
・まず、現在Fiddlerを使用されていない方は
上記の公式サイトからFiddlerのセットアッププログラムをダウンロードしインストールしてください。
.NET Framework上で動作しますので、お使いのバージョンを事前に確認しておいたほうがいいかもしれません。
(確認方法はここ等 http://msdn.microsoft.com/ja-jp/library/hh925568%28v=vs.110%29.aspx )
・Fiddlerを起動し、メニューから Rules - Customize Rules を選択します。
デフォルトの設定ではメモ帳で CustomRules.js というファイルが開かれるはずです。
(使用するエディタはFiddlerの設定で変更可能)
中にいくつかのfunctionが記述されていますが、このうち
・OnBeforeRequest の最後に同封した OnBeforeRequest.txt の内容を追加コピペ
・OnBeforeResponse の最後に同封した OnBeforeResponse.txt の内容を追加コピペ
し、上書き保存します。
(事前にバックアップを保存しておいたほうが良いかもしれません。
デフォルト状態にリセットするにはこのファイルを削除すれば自動で再作成されます。
ファイルのありかは C:\Users\ユーザー名\My Documents\Fiddler2\Scripts です)
なお、このファイルはスクリプトファイルなので自分でカスタマイズも可能です。
なかなか日本語の詳しいサイトがないのですが
こことか http://qiita.com/torub/items/5cba39c5de448f22a1e5
英語ですが本家では http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
・2ch専用ブラウザの設定で読み込みプロキシサーバの設定を
アドレス:localhost(または127.0.0.1)
ポート番号:8888
にします。
(ポート番号はFiddler側の設定で変更可能)
[動作環境]
動作確認を行った環境はWin8.1、.NET Framework 4.5.2、Fiddler 4.6.20173.38786
です。
[付記]
これは実験的に作ったものなので
使えたら(動いたら)もうけものくらいに思って下さい。
read.cgiの動作に依存するのでread.cgiで読めないものは当然読めませんし
仕様変更があった場合はその影響も受けます。
あと使用環境による影響等も調べてません。
このスクリプトに関する質問・不具合報告等は当面
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/
のスレッドで受け付けます。(あまりできることはないような気もしますが)
【重要】
バージョン2.xxでバージョン1.xxまでで対応していなかった差分取得に対応しました。
ただ、その対応のためにdat変換処理を修正する必要があったため、
バージョン1.xx以前を使って取得済みのログを更新しようとするとログ破損状態に
なってしまいます。
申し訳ないですが再取得してください。
→バージョン2.xx以降でもバージョンアップにより取得済みのログと変換結果が異なり
ログ破損状態となる場合もあるのでその場合も再取得してください。
[更新履歴]
2.26 (2018/02/13)
・bbspinkのread.cgiがバージョンアップ(07.2.0)されたので対応
(バナー広告の除去)
2.25 (2017/10/13)
・read.cgiがバージョンアップ(07.1.0)されたので対応
(スレッドタイトルの取得部分)
2.24 (2017/10/02)
・5ch.net への暫定対応
2.23 (2017/05/04)
・read.cgiがバージョンアップ(07.0.1)されたので対応
2.22 (2017/04/26)
・read.cgi 07系に仕様変更があったので対応
2.21 (2017/04/23)
・前バージョンのバグを修正
2.20 (2017/04/22)
・2chの一部のサーバでread.cgiがバージョンアップ(07.0.0)されたので対応
2.19 (2017/04/09)
・itest.2ch.net/xxx/〜 へのリクエストがあったら xxx.2ch.net/〜 に飛ばすよう修正
(itest.bbspink.com についても同様)
・https://〜 へのリクエストがあった場合への対応
2.18 (2017/03/25)
・BeアイコンやEmoticonやお絵描き機能の画像など、html上では
で表される
(dat上では sssp://〜 となる)要素について、http: が省略されるようになったため対応
2.17 (2017/03/11)
・透明あぼーんへの対応の一つとしてレス番0のレスを削除するようにしていたが
スレタイも削除するようになってしまっていたので修正
2.16 (2017/03/08)
・前バージョンの不具合(beID周りの処理の漏れ、名前欄のfontタグ、バナー広告の
除去漏れ)に対応
・透明あぼーんへの対応
2.15 (2017/03/07)
・bbspinkのread.cgiが仕様変更されたので対応
2.14 (2016/03/26)
・read.cgi 06系(の一部だけ?)最終レスの後ろに広告が入るようになったので
対応
2.13 (2016/01/11)
・read.cgi 06系で名前欄やメール欄にhttp://〜等のURLが書き込まれた場合
アンカータグが付いてしまうのでそれを除去するよう修正
2.12 (2015/12/25)
・レスアンカーに対する