Fiddler+CustomRule


概要

ローカルプロクシツールの「Fiddler」と、カスタムルールスクリプトを用いて、html から dat を取得する。


●Fiddler 本体
Fiddler - The Free Web Debugging Proxy by Telerik

【レビュー】Webアプリのデバッグに最適。HTTPに特化したネットワークキャプチャーツール「Fiddler」 - 窓の杜


●カスタムルールスクリプト
スクリプトの記述は、JScript.NET。
htmltodatByFiddler は、ver 2.03 以降より新 read.cgi に対応。

配布サイト http://mukiyu.g.ribbon.to/
htmltodatByFiddler 2.23(※2017/05/04 18:40 更新)
htmltodat 0.11.8(※2015/05/28 18:35 更新)
Fiddler 用 html2dat スクリプト (※2015/02/17 更新)
http://pastebin.com/Zpa7KB4G

(関連レス)

 19 :名無しさん@お腹いっぱい。:2015/02/17(火) 20:42:02.72 ID:D7asMS8F0
 俺もFiddler用のhtml2datスクリプト書いてみた
 ttp://www.telerik.com/download/fiddler
 インストールしてRule→Customize Ruleで下記のコード張り付けて保存して
 専ブラのプロクシにfiddlerのアドレス設定するだけ
 ttp://pastebin.com/Zpa7KB4G
 subject.txt dat(Range Header) に対応。Javascriptだから編集が簡単
 どうよ?


(専用スレ)
htmltodatByFiddler サポート掲示板

(関連スレ)
Fiddler 2chプロクシ専用 Part1

使い方

●導入手順
【1】NET Framework上で動作するため、必要に応じて使っているバージョンを事前に確認

XP SP3 以降:Microsoft .NET Framework 4.0
https://www.microsoft.com/ja-jp/download/details.aspx?id=17851

Vista SP2 以降:Microsoft .NET Framework 4.5
https://www.microsoft.com/ja-jp/download/details.aspx?id=30653

【2】Fiddler for .NET4 をインストール
  (ダウンロード先 http://www.telerik.com/download/fiddler

【3】http://mukiyu.g.ribbon.to/ から htmltodatByFiddler2 をダウンロードし、任意の場所に解凍

【4】htmltodatByFiddlerreadme.txt 記載の手順でFiddlerのCustomRules.jsにソースを追加コピペ

【5】専ブラのプロクシ設定を 127.0.0.1:8888 に設定

以上で、設定完了

*プログラミング知らんとコピペする場所が分かりづらいかも。
 (Fiddlerのバージョンが4.6.1.5、htmltodatByFiddler2.06の場合)
   OnBeforeRequestの方は、219行と220行の間にそのままコピペ
   OnBeforeResponseの方は、271行と272行の間にそのままコピペ
 OnBeforeRequestの方から貼っていかないとOnBeforeResponseの行数がずれるから注意。

*行列はメモ帳の表示→ステータスバーで出る(書式→右端で折り返すはオフで)
 (コピペする場所の行数は、Fiddler のバージョンによって変わるので注意)

*2chブラウザ以外にプロキシを通したくない場合は
 Fiddlerの設定→オプションの Act as system proxy on startup のチェックを外す

*noattachでも起動可。
やり方はFiddler.exeを右クリック→ショートカットを作成→出来たショートカットを右クリック→リンク先に C:\フォルダ名\Fiddler2\Fiddler.exe --noattach)


■コピペ手順(上記を見てもわからない人向け)
*全バージョン共通の貼り方
  (htmltodatByFiddler、Fiddlerのバージョンがなんであろうとこの箇所に貼ればいい)
1)Fiddlerを起動し、メニューから Rules - Customize Rules を選択 
2)メモ帳の編集→検索で OnBeforeRequest を検索

  static function OnBeforeRequest(oSession: Session) {
      *以下にOnBeforeRequest.txtの内容をコピペ
    // datへのリクエストをread.cgiへのリクエストに変換 by mukiyu
      :
      // ここまで

        // Sample Rule: Color ASPX requests in RED
       // if (oSession.uriContains(".aspx")) {    oSession["ui-color"] = "red";    }

3)メモ帳の編集→検索で OnBeforeResponse を検索

  static function OnBeforeResponse(oSession: Session) {
       if (m_Hide304s && oSession.responseCode == 304) {
           oSession["ui-hide"] = "true";
       }
      *以下にOnBeforeResponse.txtの内容をコピペ
    // read.cgiからのレスポンスをdatに変換 by mukiyu
      :
      // ここまで

  }←これが最後の”}”(上のstatic functionの”s”の文字と同じ列にある)

/*
       // This function executes just before Fiddler returns an error that it has 

4)上書き保存


■htmltodatByFiddler1.0x ver.を使ってる人用補足


Tips

タスクトレイに最小化状態で起動したい


 shortcut で最小化設定しておいて
 startup に Fiddler の shortcut 入れれば最小化状態で自動起動できる

 optionのHide Fiddler when~とショートカットの最小化設定でいけた



 Tools => Fiddler Options => "Appearance" tab
 Check "Hide Fiddler when minimized"

 起動後は View → Minimize to Tray か、Ctrl + M


起動時のスプラッシュ画面を非表示にしたい


 510 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/19(木) 17:01:00.76 ID:Tv5TA8o+0 (PC)
 Fiddlerなんだけど、起動時のスプラッシュを非表示には出来ませんかね?

 516 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/19(木) 17:43:28.62 ID:LqcXBoIr0 (PC)
 >>510
 http://fiddler.wikidot.com/commandlineparams
 コマンドラインオプションに /quietを追加する
 例えばfiddler.exeのショートカットを作ってリンク先をこんな感じに
 "C:\Program Files (x86)\Fiddler2\Fiddler.exe" /quiet


MANGO板(maguro.2ch.net)を表示したい


 556 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/19(木) 20:15:20.34 ID:EbD0jL1m0 (PC)
 >>497
 現在、お客様がご利用されている専用ブラウザは新仕様に対応しておりません。になってしまう
 Fiddle4だけどMANGO板だけ読めないっぽい

 558 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/19(木) 20:26:22.83 ID:wd9agHIe0 (PC)
 >>556
 UAを変えると読み書き出来るはず

*Monazilla以外のUAに変更することで読み書き可能
 oSession.oRequest["USER-AGENT"] = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";

PINKちゃんねるが見れなくなったんだけど

IPv6環境でFiddlerを使っている場合、IPv6を使用不可に設定変更しないと、板が見れない場合があるらしい。


 39 :名無しさん@お腹いっぱい。 [sage] :2015/03/30(月) 19:50:26.92 ID:V6Tvn1iv0
 xenoにfiddler4.4.9.9とhtmltodatByFiddler2.02をあてて使っています。
 .netの板は正常に読み書き出来ています。

 ですがbbspinkの板を読み込もうとすると、
 HTTP/1.1 502 Fiddler - Connection Failedになり失敗します。
 >2にはbbspinkも読み書き可能とあるし、設定を間違えているのでしょうか?

 fiddlerのセッションリストののcachingには、
 「no-cache,must-revalidate」と表示されます。
 同じ様な症状出てる人いますか?

 52 : 【BE: Lv=10,xxTP】(1+0:8) 転載ダメ©2ch.net [sagete] :2015/04/01(水) 16:58:14.38 ID:rQowbeSV0
 >>50
 502エラーになったリクエストだけど、

 ・Fiddler画面の右側上段のウインドウで、「Inspector」タブの「Raw」タブを開いてクライアントからのヘッダ情報
 ・Fiddler画面の右側下段のウインドウで、「Raw」タブを開いてFiddlerからのメッセージ

 がどうなってるか見てみて。

 53 :47 [sage] :2015/04/01(水) 19:15:54.84 ID:BwTWsJRc0
 >>52
 >上段のウインドウ
 GET http://nasu.bbspink.com/test/read.cgi/ascii2d/1426939368 HTTP/1.1
 Host: nasu.bbspink.com
 Accept: text/html, */*
 Accept-Encoding: gzip, identity
 User-Agent: Monazilla/1.00 (JaneXeno/150312)

 >下段のウインドウ
 HTTP/1.1 502 Fiddler - Connection Failed
 Date: Wed, 01 Apr 2015 10:07:37 GMT
 Content-Type: text/html; charset=UTF-8
 Connection: close
 Cache-Control: no-cache, must-revalidate
 Timestamp: 19:07:37.439

 [Fiddler] The connection to 'nasu.bbspink.com' failed. <br />Error: ConnectionRefused (0x274d). <br />System.Net.Sockets.SocketException 対象のコンピューターによって拒否されたため、接続できませんでした。 [2400:cb00:2048:1::6814:1fcf]:80

 60 :名無しさん@お腹いっぱい。 [sage] :2015/04/01(水) 21:24:07.63 ID:aIWN0O850
 つかなんでIPv6

 61 :名無しさん@お腹いっぱい。 [sage] :2015/04/01(水) 21:32:12.31 ID:BwTWsJRc0
 >60
 Fiddler設定のEnable IPv6のチェックを外したら読み込みできました…
 他の方もチェックは外されてたのでしょうか?
 大変お騒がせしました


*Tools > Fiddler Options > Generalタブ >Enable IPv6(if available)のチェックを外す

メモリ使用量を減らしたい(多少改善される程度)

sessionを常時非表示にする(OnBeforeRequestに追加)

 //Hide requests to domains except those I care about
 if (!oSession.HostnameIs("domainIcareabout.com")){
  oSession["ui-hide"] = "hiding boring domains"; // String value not important
  }
 //ここまで


ScriptSamples

Tips
ui-hide
Hide the session from the Session List.
The session will continue to run. Breakpoints on hidden sessions are ignored.
Note: hiding a session will free up the memory that would otherwise be used to hold the session data in memory.

APIモードでdat取得したい

興味のある方のみ開いて下さい。


Fiddler Extensionを利用してHTML2DAT / APIモードを切り替えたい

「htmltodatByFiddler」と「APIモードでdat取得したい(apitodatByFiddler)」を
GUIから切り替えれるようにしたい人用。
Windows 7 32bit / Windows 8.1 64bitとFidder 4.5.1.0で動作確認

■CustomRules.jsのバックアップ
1) エクスプローラで、CustomRules.js が保存されているフォルダを開く。
 (Windows7,8 の場合:C:\Users\ユーザ名\Documents\Fiddler2\Scripts\)
2) 現在の CustomRules.js をリネームしてバックアップする。
 Fiddler では、起動時に CustomRules.js が存在しないと自動的に生成される。

■Fiddler2chExtensionをダウンロード
2) http://www1.axfc.net/u/3601946.zipから Fiddler2chExtension2.0.0.0.zip をダウンロードし、適当な場所に解凍する。
3)解凍してできた Fiddler2chExtension.dllFiddler2chExtension.js
 CustomRules.js が保存されているフォルダにコピーする。
 (Windows7,8 の場合:C:\Users\ユーザ名\Documents\Fiddler2\Scripts\)
4)コピーしたFiddler2chExtension.js をメモ帳で開いて編集できるようにしておく。

■htmltodatByFiddler2.17をダウンロード
1) http://mukiyu.g.ribbon.to/ から htmltodatByFiddler2.17.zip をダウンロードし、適当な場所に解凍する。
2) OnBeforeRequest.txt をメモ帳で開き、
 中身を Fiddler2chExtension.jsOnBeforeRequest_HTML2DAT(oSession: Session) の中に貼り付ける。

static function OnBeforeRequest_HTML2DAT(oSession: Session) {

 //ここにOnBeforeRequest.txtの中身を貼り付け

}

3) OnBeforeResponse.txt をメモ帳で開き、129行目のFiddlerObject.log(sbyte+"/"+bodylength);の先頭に//を入れる。
※htmltodatByFiddler 2.16からコメント済みになったので3)はしなくてOK

 //FiddlerObject.log(sbyte+"/"+bodylength);

4)変種後のOnBeforeResponse.txt の中身を
 Fiddler2chExtension.jsOnBeforeResponse_HTML2DAT(oSession: Session) の中に貼り付ける。

static function OnBeforeResponse_HTML2DAT(oSession: Session) {

 //ここに編集後のOnBeforeResponse.txtの中身を貼り付け

}

5)Fiddler2chExtension.js を保存してメモ帳を閉じる。


■API側を設定する。
※APIモードでdat取得したい(apitodatByFiddler V2.00)は反映済み。
1)Fiddlerを起動する。
2)右のタブに2ch Proxyタブがあるので選択する。
3)API設定のAPIキーなどを編集する。


■2ch Proxyタブの取得方法からモードを変える。
HTML2DAT : htmltodatByFiddlerを使用する
API    : 2ch APIを使用する


■浪人を使用する。※未検証
1)浪人を使用するにチェックを入れる。
2)IDとPasswordを入れる

  • 最終更新:2017-05-05 12:08:51

このWIKIを編集するにはパスワード入力が必要です

認証パスワード