[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/05 08:18 / Filesize : 385 KB / Number-of Response : 980
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Proxomitron フィルター作成スレッド Part6



1 名前:ミスターオミトロン [2006/11/13(月) 17:00:32 ID:oCAoIukD0]
このスレは作成依頼されたフィルタを有志により作るスレッドPart4です

アップローダー
wind.prohosting.com/proxmine/cgi-bin/uploader/
proxo.hp.infoseek.co.jp/cgi-bin/sn_uploader/upload.html
Proxomitron等に関するWiki
abc.s65.xrea.com/prox/wiki/
Thinking Archive(仮)
vird2002.s8.xrea.com/
CastleCops Proxomitron Filters
www.castlecops.com/f65-Proxomitron_Filters.html

>>2-10にいろいろと

513 名前:511 [2007/03/11(日) 21:44:41 ID:0EO6G7xs0]
>>512
それは知っています。

514 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/11(日) 21:57:38 ID:qs13JhQR0]
アメーバ動画をDLできるフィルタきぼん

515 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/11(日) 23:37:09 ID:LSOWJrEn0]
>>513
一応確認なんですが>>502のフィルターのことですよね?

516 名前:511 [2007/03/12(月) 00:16:20 ID:/2yG7ZeG0]
>>515
違います。
私は既存のどのフィルターに対しても言及していません。
ただ、私のやりたいことについて言っているのです。

改行をスペースに置換する方法は知ってるんです。
それをtitle要素に限定する方法がわからないのです。

517 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/12(月) 00:32:23 ID:zgeKaTdr0]
>>510
ローカル変数で万事OKでした。多謝。
# まさか、置換スタックの制限だったとは…。$SET が使えないものと想定していました。

[Patterns]
Name = "Insert <a> title [2007/03/12] test4.1"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 256
Match = "(<a(rea|)\s)\#(^(^[^>]++href=$AV(\2)))"
"(([^>]++)\#title=$AV(\1)$SET(#=title="<a title>: \1\r\n<a href>: \2)|"
"$SET(#=title="<a href>: \2))"
"(^(^"
"[^>]+>(^<img\s[^>]++title=)"
"(<img\s("
"[^>]++src=$AV(\3)$SET(\8=\r\n<img src>: \3)&"
"([^>]++alt=$AV(\4)$SET(\9=\r\n<img alt>: \4)|)"
")|)"
"))"
Replace = "\@\8\9""

>>511,513,516
$NEST でマッチ範囲を制限してみてはどうでしょうか?

518 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 00:46:37 ID:awFCazQV0]
どなたかSHOUTcast Song HistoryをShift-JISで表示する
ヘッダフィルタをお願いしマス

519 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/12(月) 00:52:44 ID:zgeKaTdr0]
>>511,513,516
もしくは、「title要素の開始タグから次のタグまでの文字列」に制限する方法ですね。

<title>[^<]++[\r\n]...

title要素は、内容モデルで文字列のみを許可しているので、HTMLに即した書き方である限り、他のタグが現れることはありません。
ttp://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.4.2

最も、"<>" を文字列としてそのまま書いたりするサイトもあるので(本来は実体参照で書くべきところです)、$NESTの方が確実ではあります…。
見やすいフィルタを作るなら、Bounds でも良いです。

520 名前:511 [2007/03/12(月) 01:35:35 ID:/2yG7ZeG0]
>>517,519
ありがとうございます。

私、$NEST()の使い方がどうもわからないのです。

Match = "$NEST(<title*>,\r\n,</title>)"
Replace = " "

と書いてみたんですが、駄目でした。おそらくこれは間違った書き方なんでしょう。
正しい書き方をご教示願います。

521 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/12(月) 02:28:08 ID:zgeKaTdr0]
>>520
"$NEST(<title*>,\r\n,</title>)" は "<title>\r\n</title>" にマッチします。
$NEST の第二引数 (上例では "\r\n") は完全一致ですので、「改行を含む文字列」を指定してやれば良いでしょう。
「改行を含む文字列」の簡単な例は

*(\r\n|[\r\n])*

ですが、これでは一つの改行しか置換できません。
複数の改行を置換するためには、「グループ化を利用して、再帰的にマッチ」させる必要があります。
ttp://www.pluto.dti.ne.jp/~tengu/proxomitron/help/Tips_And_Tricks.html (「再帰的なマッチングを使わない方法」を参照)

(*(\r\n|[\r\n]))+{1,*}*

この表現で期待通りにマッチすると思います。
後は、置換スタックに格納して、変換してあげてください。
改行が見つかったときに、$SET で置換スタックに半角空白を格納するのがポイントです。



522 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/12(月) 02:38:10 ID:zgeKaTdr0]
今更ですが。

title要素内の「空白」と「改行」は同様に「空白としてWebブラウザに解釈される」ので、ブラウザの挙動を変更したいのなら、ご希望のフィルタは期待通りに動作しません。
今回は別の意図が質問者さんにあるのかと思っていたのですが、やはり、気になってしまいました…。

523 名前:511 [2007/03/12(月) 06:33:53 ID:/2yG7ZeG0]
thinkさんのレスを参考にして、title要素内の改行をスペースに置換するフィルターを作りました。

[Patterns]
Name = "Opera History Saver"
Active = TRUE
Multi = TRUE
Bounds = "<title(\s*|)>*</title>"
Limit = 256
Match = "(\#(\r\n|[\r\n])$SET(\#= ))+\1"
Replace = "\@\1"

これで適切なのかどうか不安ですが、テストをした限りでは私の望み通り働いてくれます。
thinkさんありがとうございました。


なぜtitle要素内の改行を空白に置換したかったのかといいますと…

Operaの履歴ファイルがたまに破損するから調べてみると、原因はタイトルに含まれる改行らしい。
そこで、Proxomitronを使って、改行を空白に置換してしまえと思ったわけです。

でもですね、もっとよく調べてみると、メディアタイプがapplication/xhtml+xmlの場合において
タイトルに改行を含むと履歴ファイルが破損するらしく、text/htmlならセーフみたいなんです。

だからHTTPヘッダーフィルターでapplication/xhtml+xmlをtext/htmlに書き換えれば済む話でした。
せっかく作った "Opera History Saver" ですが、存在意義がなさそうです…。

524 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 12:32:18 ID:sFZoAlND0]
以前このスレでYahooBlog検索の右側にあるニュースとかを消すフィルターを作ってもらったものですが

Name = "test"
Active = TRUE
URL = "blog-search.yahoo.co.jp/"
Limit = 50
Match = "(<!-- [%b1][%a6]\w --> )\1<td [^>]+>$SET(#=\1<td style="display: none;">)"
Replace = "\@"

これがいつのまのか通用しなくなってしまいました。どこをどう変えればいいのかご教示してくれれば幸いです。

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 12:55:47 ID:tVcyCE360]
IEが受け取れないメディアタイプを指定するほどのニッチなウェブサイトがタイトル要素に改行を含めるなんてなかなか飲み込めない話だね。
もしかしてインデントでもしてるのかな。
どちらにしろそんなウェブサイトは見る価値がないだろうと思うのでURL killfile.txtに追加するのも一つ。
<title>
  タイトル
</title>

526 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 14:44:55 ID:aCYQ5JIW0]
>>485
>もう一つだけど最初のうちはアスタリスクを乱用しないほうがいい。
>初心者にとってのアスタリスクというのはおそらく面倒なことをブラックボックスに詰め込ん>>でどっかにやるためのツールなんだろうけど
>それじゃ何も上達しないし理解もすすまないだろう。
>>(*href=$AV(\1)*|)&(*title=$AV(\2)*|)
>これなんかはアスタリスク乱用の好例だね。

Tips and Tricks
ttp://www.pluto.dti.ne.jp/~tengu/proxomitron/help/Tips_And_Tricks.html
アンパサンド「&」を使用すれば、タグの属性を、見つけた順番に関係なく
取り込むことができます。
たとえば、「<img ... >」タグを書き換えて、あなたが持っている画像と置き換え、
元の「width」と「height」の値はそのまま残す、という例を考えてみましょう。
その場合、以下のようにします...
Matching: <img ( (*(height=\w)\1*| ) & (*(width=\w)\2*| ) ) >

この表現真似したんだろ。少し意地悪過ぎないか?

527 名前:511 [2007/03/12(月) 21:51:58 ID:xzItuT7B0]
>>525
私のOperaの履歴が破損する原因だったサイトは――こんな言い方するとそのサイトが悪い見たいだけど、
もちろん悪いのはOperaのバグ――IEからのリクエストが来たらtext/htmlを吐くように配慮しているサイトでした。

ところで「ニッチなウェブサイト」って何でしょう。

528 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 23:09:22 ID:Xw0bZVnJ0]
>ニッチ【niche】
>西洋建築で,壁面を半円または方形にくぼめた部分。
>彫刻などを飾ったり噴水を設けたりする。壁龕(へきがん)。
>転じて,広く,隙間をいう。

スキマ産業的Webサイト???

529 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 23:26:51 ID:Tn7hpqvH0]
ニッチもサッチもどうにもこうにもブルドッグ

530 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/12(月) 23:30:23 ID:IhbXMcJV0]
>525 ttp://www.faireal.net/
application/xhtml+xml の際のソース参照。

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 02:12:22 ID:O2zL+zL90]
google imageまたダメになった?



532 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 02:35:52 ID:mu+tlPQe0]
>>531
Google Image: Image Change (070115)だったら
<a href="\+e\+b.m\+"><imgを
<a href="\+e\+b.n\+"><imgにすればいいよ

533 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 02:38:39 ID:O2zL+zL90]
>>532
おお、ありがとう。

534 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 13:37:19 ID:6oKDUNzC0]
>>524
とりあえず作り直してみた。

Name = "Yahoo blog search"
Active = TRUE
URL = "blog-search.yahoo.co.jp/"
Limit = 80
Match = "<td [^>]+>( <!-- [%a5][%c8])\1$SET(#=<td style="display: none;">\1)"
Replace = "\@"


535 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 19:16:45 ID:POt57Fu+0]
>>534
ありがとうございます・・・しかし私の環境では右側のキーワードの注目度、評判、ニュース記事などが消えませんでした。

blog-search.yahoo.co.jp/search?ei=UTF-8&fr=sfp&p=%E6%88%B8%E7%94%B0%E6%81%B5%E6%A2%A8%E9%A6%99

536 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/13(火) 22:36:25 ID:+r6UlnCI0]
xhtmlって要素内に改行入れちゃいけないの?

ってそんなことあるわけないか。

537 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 08:04:48 ID:nHF3h8Zy0]
>>535
トップページがEUCで検索した後のページがUTF8 …… なのか?
これで動くはず。

Name = "Yahoo blog search"
Active = TRUE
URL = "blog-search.yahoo.co.jp/"
Limit = 80
Match = "<td [^>]+>( <!-- [%a5][%c8][%a5][%d4])\1$SET(#=<td style="display: none;">\1)"
"|</head>$SET(#=<style>\n<!--\ntd#rightcol { display: none; }\n-->\n</style>\n</head>)"
Replace = "\@"


538 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/14(水) 08:25:50 ID:VvDEM1HD0]
おはようございます。
最近、書くだけ書いて投稿を忘れてしまうことが多い気が…(汗)。遅レスですみません。

>>523
なるほど、そういう訳でしたか。

> これで適切なのかどうか不安ですが、テストをした限りでは私の望み通り働いてくれます。
比較的、良くできていると思います。少しアドバイスしますと

-- <title(\s*|)> を <title(\s[^>]+|)> に変更
アスタリスクは制限された領域でない限り、2つ連続で使わない方がよいです。
ttp://vird2002.s8.xrea.com/proxomitron/meta_character/m-chara_asterisk.html

-- \1 を \# に変更
置換テキストを \@ のみにできます。

-- Multi を外す。
私の書き方も悪かったのですが、このやり方はProxomitronHelp記述上の「再帰的なマッチングを使わない方法」です。
ヘルプ上のマッチという表現は「フィルタのマッチ」を指していると思われますが、私は「ある表現部分のマッチ」という意味で用いていましたので、ややこしくなっていました…。
Multiに依存しない表現を使う場合は、Multi を外した方が高速化されますし、誤爆を最小限に抑えられます。

539 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/14(水) 09:16:00 ID:VvDEM1HD0]
>>536
br要素のことでしたら、XHTML1.1 でも使用できます。
<p> で括るべきところで <br /> を使うのはNGですが、論理構造にそってマークアップされていれば仕様上は問題ありません。
最も、「論理要素でないbr要素は非推奨」というポリシーの方もいるようで、それも納得できる話ですけど…。

余談ですが、XHTML2.0 では br要素 は廃止され、新しい要素として l要素 ("line"を意味し、空要素ではなくなります) が導入される見込みです。
ですので、前方互換性を考慮するなら、br要素は使わない方が良いと思います。

>>537
> トップページがEUCで検索した後のページがUTF8 …… なのか?
Yahoo!ブログ検索 - 「Proxomitron」の検索結果
ttp://blog-search.yahoo.co.jp/search?p=Proxomitron

↑の検索結果はEUC-JPで出力されているようですが、そのフィルタではコメント部分がマッチしていないようです。
つまり、<td ... id="rightcol"> へのスタイルのみが適用されているわけですが、これで必要条件を満たしているように思えます。

[%a5][%c8][%a5][%d4] をデコードしてみると、"トピ" となりましたがこれはどの部分にマッチさせようとしているのでしょうか?
Proxomitronによる改変前のhtmlソースを検索してみましたが、HITしませんでした。

540 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 14:35:09 ID:2lOdeE9F0]
>>537
完璧です!本当にありがとうございました。お手数をおかけしました。

541 名前:536 mailto:sage [2007/03/14(水) 18:17:41 ID:72ybzZdr0]
>>539
やはりOKでしたか、どうもありがとう。



542 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/14(水) 18:49:24 ID:PpkryFJv0]
>>542
よっ大将!見事ですね。

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 04:00:02 ID:ridcyRuU0]
( ´ー`)。oO(…ぬう、何者かがいきなり自画自賛を・・・・)

544 名前:537 mailto:sage [2007/03/15(木) 12:43:08 ID:M2i2oHhr0]
>>539
> トップページがEUCで検索した後のページがUTF8 …… なのか?

↑ この文字コード云々……というコメントは全然関係なくて、自分の勘違いでした。


> つまり、<td ... id="rightcol"> へのスタイルのみが適用されているわけですが、これで必要条件を満たしているように思えます。

検索結果のページの右側の部分には <td valign="top" id="rightcol"> という風に idが振られているんですが、
トップページ ttp://blog-search.yahoo.co.jp/ の同じ <td>タグの箇所にはidとかclassが無いんですよ。
それで仕方なく後続のコメント(<!--トピックス関連検索-->)にマッチするような書き方になりました。


545 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 13:02:15 ID:M2i2oHhr0]
そうそう、質問しに来たんですが……

ttp://www.amazon.co.jp/dp/4480062858/
たとえばこのページに行って、「マーケットプレイスに出品する」のボタンを押して、次の画面で
ALT + 1キーを押すと「商品説明」のフォームにフォーカスが行くようにしたいんです。
それで以下のようなフィルタを書いたんですが、上手くいきません。

Name = "test"
Active = TRUE
URL = "s1.amazon.co.jp/"
Limit = 100
Match = "(name=$AV(sdp-sai-condition-comments))\1$SET(#=accesskey="1" \1)"
Replace = "\@"

テスト画面ではちゃんとマッチするのですが、実際の画面ではマッチしてないようです。何が原因でしょうか?


546 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/15(木) 20:22:58 ID:ZDvtMegz0]
>>544
トップページも考慮していたのですか。納得しました。

>>545
掲示されたフィルタをAmazonでテストしてみましたが、期待通りにマッチし、[Alt + 1] キーでフォーカスが移動しました。
インターネットキャッシュが残っているのではないでしょうか?

# そのままでも支障はありませんが、そのフィルタは置換スタックを使わなくとも、置換テキストに accesskey="1" を記述するだけで機能します

547 名前:537 mailto:sage [2007/03/15(木) 22:09:16 ID:5Hl7rs480]
>>546

>>545 のフィルタで上手くいきますか?

自分の環境では CTRL + F5 で強制リロードしても、「インターネットオプション」の
「インターネット一時ファイル」でキャッシュを削除しても変わらないです。

いったい何が悪いのやら……
ともかく、検証してもらってありがとうございました。


548 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 22:13:02 ID:3+4y6iBM0]
他のフィルターに邪魔されてるのかも。 デバックモードを試してみれば分かります。

549 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/15(木) 22:47:52 ID:ZDvtMegz0]
>>547
ええ、動作の上でもhtmlソースを見ても正常動作を確認しています。

>548氏の指摘が当たっているかもしれませんね。
フィルタは早い者勝ちなので、ある範囲にフィルタがマッチすると他のフィルタがマッチできなくなります。
Multiを有効にすることでこの制限を外せますが、動作が重くなるのと複雑なロジックなので、このオプションはあまり使わない方がよいです。

550 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 22:59:36 ID:5XjJlvKV0]
アクセスキーは例えば、検索画面等で
[Mat] $NEST(<input\s,\0name=$AV((query|p|q)\1)\2,>)
[Rep] <input \0name="\1"\2 accesskey="1">

pはyahoo,qはgoogle

な感じで色々使えそうな気がする。

551 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/15(木) 23:00:00 ID:ZDvtMegz0]
と、対処法を書き忘れました。

フィルタは上に配置してあるものの優先度が高いので、特定のURLにのみ適用させるフィルタ等、出来るだけ有効にしたいフィルタは上に配置してください。
基本的に、上に配置してあるフィルタから作用しますが、マッチングパターンによっては下のフィルタが先に働く場合もあります。
例えば、以下の状況があるとします。

---- htmlソース
<a href="test.com/">TestLink</a>

---- フィルタ
Name="test filter1"
Match="TestLink"

Name="test filter2"
Match="$NEST(<a\s[^>]++href=$AV(test.com/),</a>)"

「test filter1」は「test filter2」より上に配置しています。
但し、Proxomitronはファイルの先頭から1バイトずつ読み込んでフィルタに合致する状況かどうかテストしています。
ですので、初めにマッチするのはa要素から始まる「test filter2」です。
「test filter1」を優先させたい場合は、

Match="<a\s[^>]+>[^<]++TestLink"

と書きます。
「test filter1」と「test filter2」はa要素から始まるパターンを持っている事になります。
同じ状況のフィルタが2つある場合は、優先度の高いフィルタから働きます。



552 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/15(木) 23:19:06 ID:uLDWt/T60]
>551
下に置いたフィルタが先にマッチする現象は、ずっと前から疑問に思ってた。
Proxomitron の仕様なのね。

フィルタを書き直すなどしないとだめなのか……。
優先度を設定することができるといいんだけど。

553 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 07:41:06 ID:kg1cd2iM0]
そいうのは「仕様」とはいわないだろ。

むしろどうしてそれを疑問に思えるのかが疑問なくらいに
至極当たり前の挙動だ。

554 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 09:13:53 ID:+6j5jdaH0]
いや、日本語としては「仕様」で間違ってないと思うけど。
>>552>>553がどういうニュアンスで捉えているか知らんが。

555 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 10:31:21 ID:9J0GOQta0]
まさに、仕様。

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 14:29:20 ID:Lin+siRH0]
仕様であってると思うよ。 これが至極当たり前の挙動と思ってるほうがおかしい。
検索アルゴリズムにはいろいろあるがオミトロンのこの方式はその中の1つでしかない。

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 14:30:04 ID:8/GkMkD20]
まぁ確かに

0 < 1 と評価するのはProxomitronの仕様なのね

みたいなこと言われたら
日本語として見ても主張の内容として見ても100%正しいけど
なんか妙だなって違和感は覚える

どちらの言いたいことも分かるが

558 名前:think ◆MM0nnAOCiQ mailto:>557 むしろ、数学の仕様です、と説明して欲しい気もw sage [2007/03/16(金) 18:53:48 ID:Hi6v4zHb0]
>>552
「現在のProxomitronの動作」と「>552氏が求めるProxomitronの動作」をまとめると以下のようになると思います。

---- 現在のProxomitronの動作 (以降、「動作A」とする)
1. ファイルの先頭の1バイト目から読み込み、優先度の高いフィルタから順番にテスト
2. 1バイト進み、優先度の高いフィルタから順番にテスト
3. 「3. の動作」をファイルの末尾([EOF])まで続ける

---- 「フィルタの優先度」を最優先した場合のProxomitronの動作 (以降、「動作B」とする)
1. ファイルの先頭の1バイト目から読み込み、「優先度の最も高いフィルタ」をテスト
2. 1バイト進み、「優先度の最も高いフィルタ」をテスト
3. 「2. の動作」をファイルの末尾([EOF])まで続ける
4. ファイルの先頭の1バイト目から読み込み、「前回テストしたフィルタの次に優先度の高いフィルタ」をテスト
5. 1バイト進み、「4. でテストしたフィルタ」をテスト
6. 「4. 〜 5. の動作」をファイルの末尾([EOF])まで続ける

ここで、フィルタテストに必要とするバイト数に注目してみてください。

動作A … 「フィルタテストするバイト数 = 読み込んだファイルのサイズ」
動作B … 「フィルタテストするバイト数 = 読み込んだファイルのサイズ×フィルタの数」

このことから、「動作B」はフィルタの数が多ければ多いほど、Proxomitronの動作が顕著に重くなるでしょう。
「動作A」でもフィルタの数が多いほど、Proxomitronの動作が重くなりますが、フィルタテストするバイト数はファイルサイズ分だけに留まるため、「動作A」の負荷は「動作B」程には大きくならないと想像できます。

日本語としては私も「仕様」であっていると思いますが、上のところの内部事情を知っているか否かで見方が変わってきます。
特に、「フィルタの優先度」という表現は、如何にも「最優先されそうな設定」ですから、勘違いがあっても致し方ない気がします。

# 余談ですが、2chブラウザ「JaneDoe View」の ReplaceStr.txt は「動作B」に近い動作になっていると思われます。

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 20:42:00 ID:HCDQ1kIb0]
Jane板見たけど、結構大変そうなことやるつもりみたいだねぇ。
ガンガレ。

560 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 21:13:39 ID:Lin+siRH0]
JaneViewのReplaceStr.txtをオミトロン方式にしたら早くなるのではとViewスレに書き込んだら
複数の人に否定されたことがある。 何故なのか未だに分からない。

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/16(金) 22:31:20 ID:1wcXUPwP0]
>558
ややっ、詳しい解説ありがとうございます。
そういう事情があると極めて妥当な動作ですね。
今後は、優先度を高くしたいフィルタは
ほかのフィルタと競合しても問題ないように努力します。



562 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 03:30:08 ID:AadC9Up90]
TOK2のWebスペースの広告が激しくUzeeeee!!
消すこと自体は簡単なんだが、
こちらが対応した数日〜1週間後に10〜数百バイトくらいずつ増やして、
バイト制限を潜り抜けてきやがる。
このまま増やし続ける気か(#゚Д゚)ゴラァ!

563 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 05:21:53 ID:RWq7G/0N0]
>562
自分の場合、limit は16384(16KB)になってる。
1回につき最低でも512バイト、最大で2KBくらい増やして、
いったい何回 limit を増やしたことか。

564 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 05:26:11 ID:RWq7G/0N0]
いま思いついたけど、

<!-- tok2_top --> → <div class="tok2-ad">
<!-- tok2_top_end --> → </div>
こんな感じで置き換えて、

div.tok2-ad { display: none !important }
こうすれば消える。
バイト制限を増やす必要がなさそうだし、動作も軽くなるかも。

565 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 11:02:34 ID:HIHHgHWL0]
>>560
あまり知らずに言ってるんじゃない?
手間と見返りを考えるとその価値があるかは別として、確かに悪くはなさそうな気はする。

566 名前:560 mailto:sage [2007/03/17(土) 12:29:59 ID:MSvIFEtK0]
>>565
どうなんでしょうね、検索アルゴリズムに詳しそうなレスを書く人ではありましたが
本当に詳しい人だったのか私には分かりませんでした。

567 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 13:22:55 ID:AadC9Up90]
>>563
自分は現在13160っす。

>>564
ユーザスタイルシートはキャッシュするからなぁ。
ソース見たときすっきりせんし。

568 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 18:08:19 ID:MjkjkU7H0]
BFilter
ttp://bfilter.sourceforge.net/
新顔ウェブフィルタープロクシらしい

569 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/17(土) 18:37:53 ID:jVQSctLy0]
>>564 >>567
<noembed><nolayer><comment>で囲めばキャッシュしないはず。

570 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 07:59:30 ID:s5Pb2Uih0]
>>562
トクトクの人気ランキングに出てるサイトいくつか見たけど、そんなに広告だらけって感じでもなかったけど……


571 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 11:52:02 ID:x92h/snR0]
>>570
無料の方だよ。
人気ランキング上位は有料が多い気がする。



572 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 16:33:15 ID:4oJ5D+yI0]
ttp://www.1rk.net/
このサイトの広告を消すフィルターを作って頂けないでしょうか。
お願いします。

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 19:50:17 ID:UeHdvFS20]
URLの最後が.jpgで終わっててContent-Type: がimage/jpegで、中身が普通のhtmlになってると
WEBページフィルタ適応されないんですが対処方法ありませんか?

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 21:08:43 ID:YcHYPNb90]
>>562
とりあえず作ってみた。
広告部分にidが振ってあったのでCSSで消したよ。

Name = "TOK2"
Active = TRUE
URL = "[^/]++.tok2.com/$TYPE(htm)"
Limit = 120
Match = "(<script * </script> && *(prego.jp)*)"
"|</head>$SET(#=<style>\n<!--\n"
"#TOK2-TOP-BANNER, #TOK2-SIDE-BANNER, #TOK2-SEO { display: none; }\n"
"-->\n</style>\n</head>\n)"
Replace = "\@"


575 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 21:09:27 ID:YcHYPNb90]
>>572

Name = "1rk"
Active = TRUE
URL = "www.1rk.net/$TYPE(htm)"
Limit = 80
Match = "(<img *> && *(image.jpg)*)"
"|</head>$SET(#=<style>\n<!--\n"
".ad, p.ads, p.adw { display: none; }\n-->\n</style>\n</head>)"
Replace = "\@"


576 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 21:35:26 ID:qf1arYv00]
イメージファイルの中にアドビのタグ?が入っていると
誤爆するのを防ぐにはどうしたらよいですか

577 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/18(日) 21:56:22 ID:WywTxmu/0]
>>573
Content-Type: をimage/jpegからtext/htmlに置換するフィルタで対処。
URL欄を使ってフィルタが動作するサイトを絞ってから使うといいよ。

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Content-Type: image to html (In)"
URL = "www.hoge.com/"
Match = "image/jpeg"
Replace = "text/html"

>>576
画像ファイルはデフォルトではフィルタリング対象外のはず。
その画像を見れば対策方法が分かるかも。

578 名前:ROMラー mailto:sage [2007/03/18(日) 23:52:16 ID:WywTxmu/0]
>>506
これで期待通りに動くようです。

# NoAddURL

(#?+)\9$URL(\8)$SET(ABS=\8\9)

./(?+)\9($TST(SWITCH1=1)$SET(ABS=$GET(CURRENTURL)\9)|
$URL(([^:]+://*/([^/]+/)+)\8)$SET(CURRENTURL=\8)$SET(SWITCH1=1)$SET(ABS=\8\9))

/(?+)\9$URL(([^:]+://*/)\8)$SET(ABS=\8\9)

../($TST(SWITCH2=1)$SET(NUM=$GET(LEVEL))|$URL([^:]+://*/$SET(NUM=1)
([^/]+/$LST(increment))+)$SET(SWITCH2=1)$SET(LEVEL=$GET(NUM)))
($LST(decrement)../)+$URL(([^:]+://*/([^/]+/$LST(decrement)
$TST(NUM=[^0]*))+)\8)(?+)\9$SET(ABS=\8\9)

([a-z]+:?+)\9$SET(ABS=\9)

(?+)\9$URL(([^:]+://*/([^/]+/)+)\8)$SET(ABS=\8\9)

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/19(月) 00:42:49 ID:tQMpuigO0]
>>575
遅くなりましたが、ありがとうございます。

580 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/19(月) 00:45:50 ID:NXCUdEyC0]
本スレが不毛な言い争いの場に…

DOCTYPE宣言があればそのまま、無ければ付加ってフィルタを作ろうと思ったのに
前者が実現できなくて問答無用に付加されてしまう
有効リストなり無効リストなりを作ってマッチさせる手もあるけど
それじゃ汎用性が落ちるからなぁ

581 名前:ROMラー mailto:sage [2007/03/19(月) 00:48:14 ID:7ZzHzeuq0]
>>506
$GET(ABS)と\8\9が一致しない原因は以下のフィルターを試せば分かります。
テストウインドウに"abc"と書いて下の3つのフィルターを試して下さい。

Name = "$SET test1"
Active = FALSE
Limit = 256
Match = "*"
Replace = "<match>"

Name = "$SET test2"
Active = FALSE
Limit = 256
Match = "*$SET(\0=text)"
Replace = "<match>"

Name = "$SET test3"
Active = FALSE
Limit = 256
Match = "?+$SET(\0=text)"
Replace = "<match>"

1と2の違いは$SET(\0=text)が付いてるかどうかの違いしかありませんが結果が
変わっていると思います。 3では2で起きた問題を修正するために*を?+に書き換えています。



582 名前:ROMラー mailto:sage [2007/03/19(月) 01:09:43 ID:7ZzHzeuq0]
>>506
何故こうなるかというと、*は後ろに何かがあれば最短一致として動作、無ければ
最長一致として動作するためです。 *の後ろに$SETコマンドがあると*は最短一致として
動作するようになってしまうので2のようにカラにマッチしてしまうわけです。
そこで後ろに何があっても最長一致をする?+を使うことでこの問題を回避しています。

>>580
こんな感じですかね。

Active = FALSE
Limit = 256
Match = "("
"(^(^ <!DOCTYPE))"
"|"
"$SET(0=<!DOCTYPE ....)"
")"
"$STOP()"
Replace = "\0"

583 名前:580 mailto:sage [2007/03/19(月) 06:43:35 ID:NXCUdEyC0]
>>582
お、これはありがとうごぜぇやす
ブックマークから適当に踏んで試してみたらXML宣言ありなページで誤爆したんで
回避する為に”(^(^ *<;!DOCTYPE))”に変えてしばらく使ってみるっす

そこでSTOPかけるのを思い付かんかったのと
宣言文に続く<HTML〜まで見るようにしてたのが敗因か

584 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/19(月) 18:06:50 ID:WHlPa9sf0]
>>577
ども
URL: Filter image extension をブラクラ用にオンにしてます
ログに Protect Contents except HTML が出てます

ttp://www.mxtv.co.jp/goji/ ここの画像がそうなります

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 16:44:20 ID:0LIwAOV50]
Amazonの長ったらしいURLを短くするフィルターありませんか?
こんな感じで

ttp://rag2ch.s151.xrea.com/archives/2007/02/10-0018

586 名前:ROMラー mailto:sage [2007/03/20(火) 17:30:14 ID:PPne+SNt0]
>>584
Protect Contents except HTMLというフィルタが誤爆しているようなので
このフィルターを修正するしかないですが、ログを検索してみてもこのフィルターを
配布しているところが見つかりません。
よろしければここに貼るか、うpして頂けないでしょうか。

問題が起こるところがそのサイトだけならば (^([^/]++.|)mxtv.co.jp/) をそのフィルターの
URL欄の先頭に入れれば回避出来ますが、根本的な解決にはなりません。

587 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 20:49:41 ID:PJkWD4Ws0]
>>585
ヘボくてすんません、おかしかったら誰か直してやってください
勉強させていただきやす。

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: Amazon URI Simplizer alpha.1.3.1"
URL = "www.amazon.co.jp/\w(ASIN(/|=)|obidos/|product/)[0-9A-Z]+{10}?"
Match = "*([0-9A-Z]+{10})\0"
Replace = "$JUMP(www.amazon.co.jp/o/ASIN/\0)$LOG(R[Amazon] www.amazon.co.jp/o/ASIN/\0)"

www.amazon.co.jp/gp/product/ じゃなくて
www.amazon.co.jp/o/ASIN/ に飛ばす仕様なんだけど
これだとまずいのかなぁ。飛べない商品とかあるかもしれない。
Amazonの仕様自体イマイチわかってないからそこも不安…。

588 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 23:25:12 ID:4ptHUCsg0]
>>585
www.amazon.co.jp/商品名/dp/*
という形式の商品名の部分が長くなる原因。
この商品名の部分は実は何でも良かったりする。削除しても良し。
これをを削除するだけなら>>587を改造してこうすれば良いと思う。

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: Amazon URI Simplizer (out)"
Match = "www.amazon.co.jp/[^/]+/dp/\0"
Replace = "$JUMP(www.amazon.co.jp/dp/\0)"

589 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/20(火) 23:33:47 ID:0LIwAOV50]
>587-588
ありがとうございました。
俺もそろそろ自分でフィルター作れるように勉強しないとな・・

590 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 00:13:13 ID:1/lCY91m0]
>>588
dpでいけるんですか…!

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 00:53:03 ID:1/lCY91m0]
ん、あれ?dpの商品名部分が削れればそれでOK?
>>587だと、(私の知る限りの)全ての形式のURIに対応、
かつASIN以降を全て消し去るという方向で書いてます。
お好きな方をお好みで、かな。

と思いきや、肝心の/dp/に対応してなかったので修正。
その他、商品画像ページ対応、ジャンプ先URIを更に短縮など。

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: Amazon URI Simplizer alpha.1.4 (out)"
URL = "(www.|)amazon(.co|).jp/\w((ASIN|obidos|dp|product(/images|))(/|=))[0-9A-Z]+{10}?"
Match = "*((images/|)([0-9A-Z]+{10}))\0"
Replace = "$JUMP(amazon.jp/dp/\0)"

アカウントサービス内での誤爆が一番恐い。
URIに含まれる文字列と[0-9A-Z]+{10}?でのASIN探しで
一応の防御はしてるつもりなんだけど。



592 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 01:05:18 ID:d4dDjrEw0]
>>591
せっかく作ってもらってるのに贅沢は言えません。
コピーする時に後ろ削れば良いだけですし、確かにASIN以降削れればよりよいことは確かですが

そのフィルターだとASINが「hoge1-hoge2-hoge3」と言う形式だと「hoge1」と認識してしまうようです
www.amazon.co.jp/b/ref=amb_link_18877906_34/249-2893728-4624309?ie=UTF8&node=3245331
確認用

593 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 01:35:35 ID:1/lCY91m0]
>>592
これは恥ずかしい…。
URLマッチばっかり気にして実際のマッチを手抜きしてたのが原因でした。

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: Amazon URI Simplizer alpha.1.4.5 (out)"
URL = "(www.|)amazon(.co|).jp/\w((ASIN|obidos|dp|product(/images|))(/|=))[0-9A-Z]+{10}?"
Match = "\w((ASIN|obidos|dp|product)(/|=))((images/|)([0-9A-Z]+{10}))\0"
Replace = "$JUMP(amazon.jp/dp/\0)"

まだまだ弄ってみたら、今のところ不具合が
・ユーズド商品関連に対応できない
・商品画像ページで他のカラーが見れない
どんどん冗長になってくし、やっぱり>>588ぐらいシンプルな方が
機能的にも精神衛生的にもいいみたいです。勉強になりました。

594 名前:think ◆MM0nnAOCiQ mailto:sage [2007/03/21(水) 01:55:04 ID:lHqDQGV30]
Amazonの商品紹介ページ(URL)をいくつか見ました。
どうやら、/dp/ の手前は「メーカー名-商品型番-備考」で構成されているようなので、以下の形でどうでしょうか?

[HTTP headers]
In = FALSE
Out = TRUE
Key = "URL: Omit Amazon URL [2007/03/21] test1"
Match = "http://(www.|)amazon.(co.|)jp/[\%0-9a-z]+{1,*}(-[\%0-9a-z]+)+{1,*}/(dp/[^/]+/)\0"
Replace = "$JUMP(www.amazon.co.jp/\0)"

# 商品紹介(ASIN)
www.amazon.co.jp/o/ASIN/商品コード/...
 ↓
www.amazon.co.jp/o/ASIN/商品コード/

# リダイレクタ
www.amazon.co.jp/gp/redirect.html%3F...&location=/o/ASIN/商品コード%25...
 ↓
www.amazon.co.jp/o/ASIN/商品コード/

他にも亜種がいくつかあるようですが、最近は /dp/ に統一しようとしている流れに見えますね。

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 04:23:54 ID:pz60mXe50]
タブブラウザでJavascriptが有効だとアドレス短くならないよね?
IEだと短くなるね

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 19:42:09 ID:/5cB5deu0]
>>593-594
ありがとうございます。便利になりました。
私はこれで十分ですが発見した不具合でも

・Amazon外部からのURLが反応しない
>>593はページを右上の「Would you like to see this page in English?」が効かなくなる
(ただし、外部から飛んできた時これをクリックするとURLが短くなるので英語を必要としない場合逆に便利)
www.google.co.jp/search?q=Windows+site%3aamazon.co.jp
確認用

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 22:05:22 ID:xaNVUTV40]
アマゾンのアフィリエイトをやっている身としては、
アソシエイトIDまで削られるのは遺憾だな。

598 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 23:22:57 ID:NszwPh7m0]
オミトロン使うような奴ならアフィは全殺しするだろ・・・常識的に考えて

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/21(水) 23:30:02 ID:8H5gmtUL0]
確かアフィIDを指定のものに書き換えるフィルタっていうのも以前あったな

600 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 00:55:58 ID:fq9nmX0b0]
アマゾンのアフィリエイトは真っ先に殺す。

601 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 08:11:08 ID:LPlM1PA70]
アフィが見えなくなるのは別に構わないけどさ、
でも自ら進んで踏んだものは有効にしようよ。



602 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 16:25:24 ID:uFlrt95P0]
htaccessを無効にするフィルタ希望
ていうかkaren.saiin.net/~g-kaizou/を表示させるフィルタ希望

603 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 16:37:01 ID:IfmMON990]
( ゜σ・・ ゜) ホジホジ

604 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 16:58:02 ID:h6gQqGsT0]
>>602
Content-Encoding: text/html; charset=csiso2022kr

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 17:12:43 ID:IfmMON990]
つ SJIS

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 20:49:05 ID:i23UPNfh0]
>602に行ってみたけど、
ヘッダで文字コードを詐称されると、フィルタがまったく効かなくなるね。
これは Proxomitron を無効化させるための手段になる。危険だな。

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 21:03:40 ID:HF+LFNrU0]
変なContent-Encodingは消したほうが良いみたいだな
gzip, chunk 以外知らんけど

608 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 21:10:10 ID:CuyAqdZm0]
>>599
それ教えて( ゚д゚) ホスィ・・・

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 21:43:52 ID:h6gQqGsT0]
>>602
[HTTP headers]
In = TRUE
Out = FALSE
Key = "Content-Encoding: Kill Content-Encoding (in)"
Match = "*"

[HTTP headers]
In = TRUE
Out = FALSE
Key = "Content-Type: Kill charset (in)"
Match = "text/html; charset="
Replace = "text/html;"

>>606-607
ですね。

610 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 22:24:29 ID:LqIcExhd0]
Match = "(^gzip|x-gzip)?"
とかにしとかなくていいの

611 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/22(木) 22:57:21 ID:h6gQqGsT0]
>>610
ttp://www.youtube.com/watch?v=LbmbQkX7czo
駄目だ、これ開いたら一面文字だらけになった。



612 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/23(金) 00:57:41 ID:zEKCeVAb0]
文字コード詐称されてフィルターが効かないと言う状態なら
ブラウザも正しく認識出来ないのだからどっちにしろ危険は無いんじゃないのか?

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/03/23(金) 16:29:48 ID:3Pg7luNE0]
オミトロン装備してるとどうも一部の頁が西ヨーロッパ言語になってしまうんだが、どうすればいい?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<385KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef