したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

htmltodatサポートスレッド

272 ◆/vmukiyuzw:2005/12/29(木) 17:47:43
>>270さん
>>271の663さんのを元に修正してみました。
メール欄の有無であちこちの半角スペースの有無が変わるのでそれを補正しました。
あと、名前欄がトリップの場合に最短一致だと拾えないので?を取りました。

m#<span.+?><a href="menu:\d+">([0-9]+)</a></span> ?<span class="name_label"> ?名前: ?</span>.*?(?:<a class="name_mail" href="mailto:(.*?)">)?<b> ?(.*)</b>.+?投稿日:</span> ?<span class="date"> ?(.+?)</span></div><div class="mes">(.*?) </div>#mi

ブラウザで見たときに最後の</div>#miの前の半角スペースが1個になっちゃうと思いますが
実際には2個です。

# こういうHTMLを見るときは横スクロールありで見たほうが意外と見やすいことに気づいた

273名無しさん:2005/12/29(木) 19:10:56
>>271-272
ありがとうございました
早速偽モナメント3にageて読ませていただいております

274 ◆/vmukiyuzw:2005/12/29(木) 19:18:34
ところで実況とか一部の板で時刻が100分の1秒単位まで表示されるようになってますね。
レス1の投稿日時からdat名を求める処理にもしかしたら影響するかも、と思って早速
テストしてみましたが、特に影響は出なかったので安心しました。

275名無しさん:2006/01/17(火) 17:12:37
htmltodat080を使わせてもらっています。質問なんですがとあるサイトのログをdatにしたんですが
どうもレスの一部が削られているようなのです。例えばここのサイトの
ttp://cp2ch.hp.infoseek.co.jp/
●● 食虫植物を育ててる方のスレッド Part5 ●● ttp://hobby.2ch.net/test/read.cgi/engei/1073146723/
を正規表現「なんだっけ」「DAT2HTML0.26」で変換したところ、例えば>955ですと

今回、洗いざらい全てブチまけてしまって楽になったのは、果たして幸か不幸か…。

以降が消えてしまっているようです。
この他のスレでも所々削られているようなんですがこれは正規表現が正しくないからなんでしょうか?
よろしくお願いします。

276名無しさん:2006/01/17(火) 17:17:10
補足
Janeの外部コマンドでにくちゃんから取得すると
上の>955に関しては正しく出来ているようです。

277663 ◆red7kKzN/E:2006/01/17(火) 17:54:39
# 作者さんでは無くてすみませんです

>>275さん
そのHTMLですが、ブラウザから直接保存したのかどうかわかりませんが
>>5の正規表現とも異なってますしよくわからないのですが
「なんだっけ」「DAT2HTML0.26」のどちらも
終端を「〜<BR><BR>#mi」としているのが
整形されたHTMLと間違ってマッチしちゃってるみたいです。

HTMLのソースでいうと5250-5251行目

<BR>今回、洗いざらい全てブチまけてしまって楽になったのは、果たして幸か不幸か…。
<BR><BR>つーか所詮僕は(後略)

の「<BR><BR>」にマッチしてしまって後が切り捨てられたのではないかと。
で、これにみあった正規表現を考えてみると、こうなるのかなと思うです

m#<DT><A name.+?>([0-9]+)</A> :.*?(?:<A href="mailto:(.*)">)?<B>(.+)</B>.*? ?:(.+?)<DD>(.*)<BR><BR> *?(<DT>|</DL>)#mi

「<BR><BR>」のあとに「半角空欄+<DT>」が来るような正規表現にすれば
上の955の問題は回避出来ると思うです。

278名無しさん:2006/01/17(火) 18:39:04
>>277
早速のレスありがとうございます。
上のサイトからhtmを保存しローカルのファイルをhtmltodatで
読み込んで試しました。
それで、277さんの
m#<DT><A name.+?>([0-9]+)</A> :.*?(?:<A href="mailto:(.*)">)?<B>(.+)</B>.*? ?:(.+?)<DD>(.*)<BR><BR> *?(<DT>|</DL>)#mi
でやってみたらうまく出来ていました。ありがとうございます。


それで要望なんですが今回Janeでスレを読んでいて違和感を感じたので
サイトのhtmと直接比較してレスの欠落に気付いたのですが、こういうのを
自動で検出する機能があればいいなと思いました。

一番良いのは正規表現を自動で生成出来る事なんですけど・・・

では、ほんとに有難うございました。

279 ◆/vmukiyuzw:2006/01/17(火) 22:10:07
# 663さん回答ありがとうございます

>>278さん
> それで要望なんですが今回Janeでスレを読んでいて違和感を感じたので
> サイトのhtmと直接比較してレスの欠落に気付いたのですが、こういうのを
> 自動で検出する機能があればいいなと思いました。
>
> 一番良いのは正規表現を自動で生成出来る事なんですけど・・・

それができればおそらく正規表現自体をユーザが意識する必要ないようにできるでしょう。
しかし現実のHTMLはその性質上あまりにもファジーなわけで・・・。
よいアルゴリズムがあれば是非ご教授願いたいところです。とりあえず私の今のスキルでは実現出来そう
にないです。
ただ言える事は
「出所のはっきりしないHTMLについては既存の正規表現がそのまま使えるとは期待しないでください」
ってとこでしょうか。
# Jane関係のスレだったか、「kakikomi.txtに自分のレス番号を記録できないか」という議論が何度か出て
# 結局「困難」と言われているのを思い出しました(これもdatとHTMLの比較の話です)

280275=276=278:2006/01/17(火) 23:48:27
>>279
素人考えで無理な事言ってすいません。
今回この書き込みが消えているのを見つけてから変換したdatを調べてみたら
結構な数のdatがこうなっていたので思わず書いてしまいました。
やはりケースバイケースで正規表現を書き換えないといけないんですね。
当方、正規表現も理解出来ていないぐらいなのでお力になれず残念です。

281 ◆/vmukiyuzw:2006/01/18(水) 02:31:54
>>279
うあ、
> # Jane関係のスレだったか、「kakikomi.txtに自分のレス番号を記録できないか」という議論が何度か出て
> # 結局「困難」と言われているのを思い出しました(これもdatとHTMLの比較の話です)
は、「datとプレーンテキストの比較の話」でした。勘違い(恥
まあいずれにせよ、加工が入ると比較が難しくなるっていうことで^^;

282 ◆/vmukiyuzw:2006/01/30(月) 01:58:30
バージョンアップしました。(0.8.1)
 ・文字コード自動判別機能を多少強化(metaタグでcharsetが指定されていなくても
  ある程度自動判別出来るようにした)。
 ・「EUC->SJIS」「UTF8->SJIS」ボタンを廃止。代わりに「ソース文字コード」の
  コンボボックスと「->SJIS変換」ボタンに変更。
 ・一括変換でhtm,html以外の拡張子も指定できるようにした。

文字コード自動判別については、
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/49
で書いたものを実装してみました。
(まあ、Unicodeとかiso-2022-jpとかは2ch形式のHTMLでは今のところ見たことが
ないので実装してませんが)

「EUC->SJIS」「UTF8->SJIS」ボタンについては、他とUIをそろえるためと、今後の
拡張性を考えコンボボックスに変更しました。

あと、一括変換での拡張子指定は、
http://yy14.kakiko.com/test/read.cgi/mirror/1115123243/310-314
あたりで出てきた話題を実装したものです。
まあ使い道としては適当にupされたdatのキーを元のdatキー名に変換するとか
文字コードを変換するとかかなあ・・・まあお好きにお使いください。
ちなみに自分で書いたもののコピペですが

> 正規表現:m#(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*)#
> 変換結果式:$1<>$2<>$3<>$4<>$5
> これだけだとdatの最後に<>が3つくっついて変になるので
> 後処理:s/<><><>/<>/
> これで一括変換かける。

283 ◆/vmukiyuzw:2006/02/08(水) 22:53:13
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/483-484
今までbeコードについては手を抜いていましたが、これを読んで由々しき事態だなと思い
調べてみました。
663さんのコードがそのまま使えるかなと思ったのですが、DAT2HTMLではどうしてるのかなと
調べたところ、be関数の引数の数が2chとは違う
(<a href=javascript:be(26098733,1);>のようになっている)ので、両方に対応できるよう
以下のようにしました。

s#<a href=javascript:be\((\d+)(?:,\d+)?\);>\?(\#*) *?</a>#BE:$1-$2#gi

当面、beコードを含むHTMLを変換する際は、基本的には上記の正規表現を変換オプション→
前処理に貼り付けるようにしてください。
(でないとbe対応2ch用ブラウザでbeプロフィールを表示できません)

大抵のHTMLでは上記のでいけると思います。
今後、もっと汎用性が確認できたら内部に組み込もうかなとも考えています。

※p2.chbox.jpのHTMLについては上記は使えませんが、それは
 http://www.geocities.jp/mirrorhenkan/snapshot を参照ください

284 ◆3551601012:2006/02/15(水) 22:36:46
いちおmakimo.toの正規表現も載せて見てはどうでしょうか?

285 ◆/vmukiyuzw:2006/02/15(水) 22:57:24
>>284さん
>>222-223に書いてますが・・・
デフォルトで付けているregexps.txtにも入れてみてはという意味ですかね?

286 ◆/vmukiyuzw:2006/02/20(月) 00:03:42
Beのユーザープロフィールがどどーんと変わったよ。
http://live22x.2ch.net/test/read.cgi/news/1140353755/

早速見てみましたがHTML上は特に変更ないようです。
2ch用ブラウザはこれから対応待ちってとこでしょうか・・・

287 ◆/vmukiyuzw:2006/02/28(火) 23:05:01
「株」についてですが、今のところHTMLとdatで違いはないようなので
手を出す必要はないかなと思っています。

288 ◆/vmukiyuzw:2006/03/03(金) 23:01:42
バージョンアップしました。(0.8.2)
 ・HTMLソース欄、正規表現欄、dat変換結果欄、変換オプションの前処理・後処理欄
  に右クリックポップアップメニューを追加。
 ・beコードのHTML->dat形式の変換を内部に取り込み。

ポップアップメニューについては
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/479
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/56
で出てた話を実装したものです。

beコードについては、>>283 の件を内部に組み込みました。
これでbeコード入りのHTMLを変換する際に>>283 のような前処理を指定する必要は
なくなったと思います。

あと、>>284さんの意見は意味がわからなかったので当面スルーです。
デフォルトのregexps.txtに追加するという話だと、自分で追加・修正してる方に修正を
強要してしまうことになるかもしれないので、なるべくならやりたくはないのです。

289 ◆/vmukiyuzw:2006/03/03(金) 23:44:29
あと余談ですがこんなサイトを見つけました
ttp://www.dll-files.com/dllindex/dll-files.shtml?riched32
9x系のOSで、全選択→コピーってやるとriched32.dllのエラーに
なってしまう方は試してみるといいかも知れません。
(自分で試したわけではないので全くの無責任です^^;)

290 ◆/vmukiyuzw:2006/03/12(日) 00:47:35
ちょっと仕様で悩んでることがあります。

前処理のw コマンドで保存するファイルの指定について
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/542,544
みたいなリクエストがあって、ちょっと考えてみたのですが
ファイル名に置換ワードを使うという前提で
$FILE →今までどおりhtmltodat.exeと同じフォルダに保存
$PLAINFILE →フォルダ名を付加しない。なので使うときはフルパスを付加することが必須
$SELECTFILE →ファイル選択ダイアログを出して選んでもらう
$ORGFILE →元ファイルと同じフォルダに保存する
とか考えました。

悩んでるのは
(1)こんなもんでよいのかと。
(2)「元ファイルと同じフォルダに保存する」って、URLを指定された場合には
どうするのかと。($FILEか$SELECTFILEとどちらかの同じ動作にするか)
(3)URLが指定された場合、やっぱファイル名は9-10桁のスレッドキーにした
ほうがいいのかと。

等々、まあくだらないことばかりかもしれませんが相談に乗っていただけると
ありがたいなと思います。

291663 ◆red7kKzN/E:2006/03/12(日) 22:21:25
# 要望したのは自分ですが 何書けばいいのだろう・・・

>>290

>(1)
そんなもんでよいです
というか 凄いです。

>(2)
エラーを出せばいいのは
・・・と素人目には思うのですが・・。

>(3)
後処理でもwコマンドが使えたのですか。
選択式に出来れば有り難いのですが・・・。


あと追加要望なのですが(ごめんなさい)

wコマンドで出力するファイルの文字コードも指定出来たら有り難いです。
UTF-8で保存し直したりする機会が増えてきましたので。。

292 ◆/vmukiyuzw:2006/03/12(日) 23:30:39
>>291
レスありがとうございます。

> >(2)
> エラーを出せばいいのは
> ・・・と素人目には思うのですが・・。
確かにそんな程度でもいい気がしますね。

> >(3)
> 後処理でもwコマンドが使えたのですか。
後処理ではwコマンドは使えないです。
(datの一行ごとに作用させてる関係上・・・)

> 選択式に出来れば有り難いのですが・・・。

> wコマンドで出力するファイルの文字コードも指定出来たら有り難いです。
うーむ、このために置換ワードのバリエーションを増やすのは煩雑ですし
使うほうもわかりづらいですね。
(Janeでは$TEXTUとか$TEXTEとか使われてますけど)
wコマンドのオプションで w なんちゃら -utf8 みたいにするか、直前のコメントで
#to_utf8 みたいに指定できるようにするか、どっちかですね。
ともあれ貴重なご意見ありがとうございます。

293 ◆/vmukiyuzw:2006/03/13(月) 02:00:12
どちらも変換オプションに入れてしまえばいいか・・・
オプションも段々ごちゃごちゃしてきたような気もしますがまあいいか

294 ◆/vmukiyuzw:2006/04/01(土) 01:04:28
心配はしてたんですが今年もやられた・・・2006/03/32とは・・・
dat保存する際に「日付または時刻ではありません」のエラーになってしまいます。
ひ(ryのバカヤロー!
忙しいんですが何らかの対処しないといけないようですね・・・

295 ◆/vmukiyuzw:2006/04/01(土) 16:41:11
というわけで急遽バージョンアップしました。(0.8.3)
 ・投稿日が「2006/03/32」となっている場合、投稿日からスレッドキーを求める処理
  が失敗しdat保存する際にエラーとなる場合があるので修正。

というか「2006/03/32」を強制的に「2006/04/01」に変換するようにしただけなんです。
明日「2006/03/33」とかなってたらどうしようw
つーか毎年こういうことに悩まされるのも嫌だな・・・

次に、http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/572
のようなリクエストがきたので前処理の「DUMPER.JPスレタイ除去」を修正してます。
必要な方は上書きして下さい。

あと、>>290-293については急ぐ物件ではないかなと思って後回しにしてしまいました。
ごめんなさい> 663さん

296 ◆/vmukiyuzw:2006/04/02(日) 00:20:24
大体の板は直ったみたいだけどVIPとか未だに「2006/03/33」が出てますね。
これはもうさすがに放置しようかなと。一応エラーにはならないように対処しましたし。

297 ◆/vmukiyuzw:2006/04/10(月) 00:53:44
動画2chなんてものが出来てるようですが・・・
どう対処したものか今のところ全くわからない状態です。
まあ出来たばかりなので過去ログが出来た段階で考えようかと。

298<削除>:<削除>
<削除>

299名無しさん:2006/04/27(木) 00:15:42
単なるクレクレな、こんな質問をしてすみません。
pealの正規表現がぜんぜんわからないんで・・・
3chの過去ログ倉庫にあるスレッドをDAT化したいのですが、
2chの過去ログ倉庫とは形式が違うようです。
ttp://www.3ch.jp/newsvip/kako/112/1121876858.html
これの正規表現を教えてください。

300 ◆/vmukiyuzw:2006/04/27(木) 01:53:21
>>299さん
うーむ、これはどうやってHTML化されたものだろう・・・?
さっぱりわかりませんがHTMLの形式はread.cgi7.00?とほぼ似ているのでちょっと変えて

m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)</dt><br><dd> ?(.*?)<br><br></dd>#mi

でいけると思います。他のログに通用するかは自信ありませんが。

301663 ◆red7kKzN/E:2006/04/27(木) 16:19:31
>>299さん
どうしてもhtmlからdatに変換したいというなら別ですが、
3chの場合 そのアドレスの「〜.html」を「〜.dat」に変えればいいです

http://www.3ch.jp/newsvip/kako/112/1121876858.dat

0chスクリプトの過去ログなんかも同様にいけるです(>>180-181)


>>mukiyuさん
悪気は全くないのです
お気を悪くされたら謝ります
ごめんなさい
ごめんなさい

302299:2006/04/27(木) 22:52:32
>>300
ありがとうございました。できました。
なんかすぐ対応してもらってすみませんでした。

>>301
_| ̄|○ソウダッタノカ・・・
それって3chの運営にでも書いてありましたかね・・・
なにしろトップから過去ログ倉庫にもいけないと言うへぼさ加減で>俺
ひとつ勉強になりました。ありがとうございます!

303 ◆/vmukiyuzw:2006/04/27(木) 23:15:33
>>301
「お気を悪くされたら」なんてとんでもないです
htmltodat使わなくてもdatが取得できるならそのほうが効率的ですし
ノウハウを提供頂いて逆にありがたいです

304546:2006/04/30(日) 01:58:44
htmlファイルをdatにhtmltodat0.8.3で変換しようとすると、
変換開始後、数秒してから
「全然ヒットしないので正規表現が正しくないようです」
とエラーが出てしまいます。
(read.cgi7.00?で変換しています)

どうかアドバイスをお願い致します
http://makimo.to/2ch/etc_shop/1060/1060125334.html

WinXPsp1a
JaneIE Viewα051128

305名無しさん:2006/04/30(日) 02:15:40
>>304
ブラウザ上でマウスを右上のほうにもってくと出てくる「DAT」のとこをクリックして「1060125334.dat」で保存

306546:2006/04/30(日) 03:26:09
>ブラウザ上でマウスを右上
す、すみません
どのサイトの、どのページでやったらいいのでしょうか?

307名無しさん:2006/04/30(日) 03:55:53
>>306
>>304のLinkをブラウザで開いて実行すると、
http://makimo.to/cgi-bin/html2dat/html2dat.cgi?etc_shop/1060/1060125334.html
が開かれる

308 ◆/vmukiyuzw:2006/04/30(日) 19:28:18
>>305さんフォローありがとうございます
ちなみにjavascript ONでないといけないのでご注意ください。
にくちゃんねる(makimo.to)のdat化についての話題はこのスレでも何度も出てますので
一度検索してみてください。

309<削除>:<削除>
<削除>

310<削除>:<削除>
<削除>

311663 ◆red7kKzN/E:2006/05/17(水) 22:27:16
些細な要望なのですが宜しいでしょうか。

htmltodatで subject.txtを生成する際の改行コードを
「CR+LF」にして頂けたら嬉しいです。

現状、生成されたsubject.txtの改行コードは
「LF」みたいなので、メモ帳で開くと表示が崩れてしまうです。
(9x系のOSだけかもしれませんが)

エディタを使えばいいだけの話ですが、
ダブルクリックでメモ帳で開いてちょこっと直す事とか
出来たら楽だろうなー、と。

「CR+LF」の改行コードでも
FTPでAsciiモードでアップする際に「LF」に変更するみたいなので
問題無いと思うです
http://ash.jp/code/return.htm

気が向いたら御一考頂ければ嬉しくなりますです

312 ◆/vmukiyuzw:2006/05/18(木) 01:14:01
>>311
あえてサーバ側と同じになるようLFだけにしてたのですがそういうニーズもあるのですね・・・

修正するのは簡単ですし副作用も特になさそうなのでやろうとは思うのですが
>>290- がまだ中途半端にしか出来てないので一緒に対応しようかなと思います

313 ◆/vmukiyuzw:2006/05/25(木) 17:35:22
バージョンアップしました。(0.8.4)
 ・前処理のwコマンドの機能拡張。
  置換ワードとして$FILE,$ORGFILE,$PLAINFILE,$SELECTFILEを追加。
  (詳細はreadme参照)
  また、保存文字コードを変更できるようwe(EUCで保存)、wu(UTF-8で保存)
  コマンドを追加。
 ・dat変換をしない(前処理のみ行う)オプション追加。
 ・subject.txt作成で改行にCRLFを指定できるよう修正。
 ・その他タブオーダーなど細かい変更。

wコマンドの拡張は>>290-を受けたもので、あまり重要な修正というわけでは
ないと思いますけど、sed(て言ってわかる人がどれだけあるか疑問ですが)
みたいなストリームテキストエディタ的な使い方ができるのもそれはそれで
面白いかなと思ってつけてみました。dat変換を行わない(前処理のみを行う)
もそれの流れです。htmltodatの本筋をそれてますし、またも車輪の再発明ぽい
ですが。
文字コード変換の問題はいろいろ考えたんですがコマンドそのもので指定する
のが一番簡単そうだったのでそうしました。

subject.txtの改行コードは>>311の要望ですが副作用が怖かったのでやはり
オプションということで。
あと、タブオーダーとかが適当だったんでついでにある程度直しました。

314663 ◆red7kKzN/E:2006/05/25(木) 22:49:42
>>313
ありがとうございます。

取り急ぎ御礼まで

315 ◆/vmukiyuzw:2006/05/26(金) 10:34:03
うーむ、「dat変換をしない」をONにした状態で一括変換をかけると
元のファイル名.datで0バイトのファイルが作成されるバグが発覚しました。
調べてみます。

316 ◆/vmukiyuzw:2006/05/26(金) 11:57:19
バグフィクスしました。(0.8.5)
 ・「dat変換をしない」オプションを指定していたときに一括変換を行うと
  元のファイル名.datで0バイトのファイルが作成されるバグを改修。

一括変換ではとりあえずエラーでなければファイルをつくるようにしていたのを
すっかり忘れていた初歩的なミスで・・・前のバージョンをダウンロードした方
申し訳ありませんでした。
うーむ、でも今回は結構相性の悪そうな部分を弄ってるのでまたバグだしちゃう
かもw ごめんなさいね(先にあやまっときます^^;)

317 ◆/vmukiyuzw:2006/05/28(日) 13:40:18
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/615-616 について
レス316と734のメール欄がプレーンテキストで [age] になっているため
正規表現にマッチしてないようですね。
しかしメール欄が age の場合だけの特例なのかなあ・・・よくわからん。
いずれにせよメール欄の表現形式が3種類となるわけでこれはこれでまた
面倒になりそう・・・なんでこんなうっとおしいことするのかなあ(ってhtmltodat
的に、ということですが)。もうmakimo.to大嫌い!!
今は考える気にもなれないのでもうすこし頭を冷やしてから考えてみます。

318<削除>:<削除>
<削除>

319 ◆/vmukiyuzw:2006/05/28(日) 22:01:26
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/619
>> 変換した際に出力される$1の連続関係が簡単に確認出来たら
>> 嬉しいです。(私が)
>> 上の例だと「317と735が抜けてます」とか自動的に検出とか出来たら
>> 嬉しいです。(私ry)

これは技術的には全然可能ですし自分でも以前からあったらいいなと
思っていた機能です。
ただ問題はエラーをどう表現したらいいのか・・・
まあ普通に考えるとエラーダイアログで出すべきなんでしょうけど、
上の例くらいならシンプルですが過去に透明あぼーんが大量に含まれてる
スレを見た記憶があるので・・・
「317と318と319と320と・・・」みたいに延々と続けて表示されてもそれはそれで
迷惑かなと思ってしまって手をこまねいてしまった経緯があります。
でもまあ検討してはみます。

320 ◆/vmukiyuzw:2006/05/29(月) 00:51:38
エラーダイアログでなくメモウィンドウでも表示して抜けてるレス番を
羅列するとかししたらいいのかな

321 ◆/vmukiyuzw:2006/05/29(月) 02:23:08
>>317
変換ルールが読めない・・・もう少しバリエーションがあれば何とかなるかもしれませんが。
とりあえず現時点ではギブアップです。申し訳ない。

322 ◆/vmukiyuzw:2006/05/29(月) 23:53:11
>>317,321
多分なんとか対応できたような気がします。

前処理:
s#<span class=(.*?)>(.*?)</span> \[(.*?)\] #<span class=$1><a href="mailto:$3" class=mailto>$2 </span></span> #g
変換結果式:
$4<>$2$3<>$5<>$6<> (←これはmakimo.toのデフォどおり)
正規表現:
m#<dt><a href.*?>([0-9]+)</a> :<span .*?>(?:<span title=(.*?) class=sage>|<a href="mailto:(.*?)" class=mailto>)?(.*) (?:</a>|</span>)?</span> :(.*?) <br><dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mi
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/44でメモしていたもの。他にも通用するかは
自信なし)

問題になっていたのは、普通のメル欄表現と、[age] みたいなメル欄表現が名前欄とメル欄の順序が変わって
しまうことで、それにより正規表現だけではどっちが$2(メル欄)か$3(名前欄)か判別できない状態になっている
ことでした。
なので、前処理で [age] みたいなメル欄表現は前もって名前欄とひっくり返しておくことで対応しました。
(後知恵ですが前処理を付けたおかげでこういうケースにも対応できるようになってよかった・・・
使いこなしは難しいなとは思いますけど)

323 ◆/vmukiyuzw:2006/05/30(火) 01:59:43
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/621
メモウィンドウだとコピペも楽だろうなんでそう思った次第です
まあ実装はいつものごとくのんびりやるので期待せずお待ちください

324 ◆/vmukiyuzw:2006/05/30(火) 02:58:38
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/620
下部にある過去ログというのが良くわからなかったんですが
そんなに難しいhtmlには思えませんでした
具体的なURLを示していただけると。

325663 ◆red7kKzN/E:2006/05/30(火) 08:57:42
おはようございます
いろいろすみませんです。出がけなので取り急ぎ。

えーと

http://jituwa.gozaru.jp/kakolog/01.html
から
http://jituwa.gozaru.jp/kakolog/25.html
までです。

326 ◆/vmukiyuzw:2006/05/30(火) 19:55:35
>>325
全部を見たわけではないですが、いろんなサイトから集めておられるのか
バリエーションがいくつかあるようですね。なので一発の正規表現で全部
変換するのは無理でしょう。個別に見ていくしかなさそうです。

01.htmlを見ると「sample」に毛が生えた程度のものかと思ったのですが
02.htmlはまた全然違う・・・makimo.toに似てますが微妙に異なりますね。
とりあえず02.htmlにマッチしたパターンです。ご参考まで。
(makimo.toと同じ変換結果式の指定が必要です)

m#<dt>([0-9]+).*?:<span .*?>(?:<span title="(.*?)" class=sage>|<a href="mailto:(.*?)" class="mailto">)? (.*?)(?:</a>|</span>)?</span> (.*?) ?<br> *?<dd> *?(.*?)<br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mi

ブラウザ保存されてる関係だと思うのですが、余分な改行や半角スペースが
入っているので、マッチするパターンを見つけにくくなる傾向があります。
一概には言えませんが「 *?」(半角スペース+アスタリスク+クエスチョン)を
適宜入れることで回避できる場合があります。

# しかし上のパターンを書いてみて、>>319-320の実装はやはり必須だなと
# 痛感しました。正規表現でエラーになるわけではないのに全レス変換できない
# ときに、どのレスが欠けているのか探すのが超面倒くさい・・・

327663 ◆red7kKzN/E:2006/06/01(木) 19:49:16
お手を煩わせて申し訳ありませんです。
参考にさせて頂きます。

> ブラウザ保存されてる関係だと思うのですが、余分な改行や半角スペースが
> 入っているので、マッチするパターンを見つけにくくなる傾向があります。

ふと思ったんですが、ブラウザ毎にトリムされる規則(?)とか判ったら
前処理で

s# +?# #ig

とやるだけで良くなるかもな、とか。(戯れ言です)
・・やはり無理か。。

328 ◆/vmukiyuzw:2006/06/03(土) 00:08:22
>>327
> s# +?# #ig
これは良い案だなと思いました。HTMLでは連続する半角スペースは基本的に
ブラウザの表示上では無視されますから。
ただ、htmltodat的には、マッチするパターンを見つけるのにはそれほど役立たない
ような気もしますね。無駄な半角スペースが除去されたのを想定した上で正規表現を
考えないといけなくなりますし(ってそれはそんなに難しいことではないかな?)。

とにかく作者でありながら未熟者なので、例えばHTMLタグの途中で改行されて
半角スペースが妙に足されてるようなケースに出くわすと「なんでこんなとこで改行すんのよ!」
と思ってしまったりもすることがしばしばあるのです。だからブラウザ保存の変な(?)HTMLが
大嫌いなんです。><
最初の設計から、改行はまず全部とっぱらってからマッチさせるようにしておけばよかった
かもとたまに思うのですが、それはそれで難しいことになりそうで今のまま来てる訳で・・・
まあ今更愚痴ってもしょうがないですが。

329 ◆/vmukiyuzw:2006/06/03(土) 02:52:41
考えてみたら現状では前処理があるので改行やら半角スペースの連続やらを
除くことは可能ですね。
まあそれがどれだけ役に立つかは私にもまだわかりかねますが。

330<削除>:<削除>
<削除>

331<削除>:<削除>
<削除>

332名無しさん:2006/07/06(木) 00:53:13
Level3&ミルクカフェに対応キボーン

333<削除>:<削除>
<削除>

334 ◆/vmukiyuzw:2006/07/09(日) 20:01:48
>>332
対応の意味がよくわかりませんがなんかスレ違いな気が・・・もしかして誤爆でしょうか?
専ブラの作者さんに言うべきことのように思います。

それともこれらに対応する正規表現考えてくれって意味ですかね?それならそれで
具体的なURLを教えていただかないと何ともし難いです。
(それくらいググれよと言われそうですが私はそこまで寛容では無いです)

335<削除>:<削除>
<削除>

336663 ◆red7kKzN/E:2006/07/20(木) 19:26:04
要望というかどうすれば解決するのか教えて頂きたいのですが

http://web.archive.org/web/20030425012552/world2ch.net/test/read.cgi/accuse/1048754153/1-100

↑このhtmlをdat化しようとしています。
正規表現はたぶん

m#<dt>([0-9]+) Name: (?:<font color=green>)?(?:<a href="mailto:(.+?)">)?<b>(.+)</b>(?:</font>|</a>): (.*?)</dt><br><dd> (.*?)<br><br></dd>(<dt>|</dl>)#mi

でいいと思うのですが
元の文のハングル文字が全部「???」になってしまいます。

いったんdat保存して(文字コードUTF-8)、コピペで置換しようとしたのですが
やはり貼り付けると「???」になってしまいます。
(エディタはTeraPadとxyzzyyを使っています)
試していませんが、キリルフォントや繁体字・簡体字中国フォントでも
多分同様に文字化けすると思います。

この場合、どのようにすればよいでしょうか。

337 ◆/vmukiyuzw:2006/07/21(金) 02:10:38
>>336
うーむ、charset=UTF-8を名乗っておきながらUTF-8でない書き込みであるのが原因であろうと
思うのですが、何の文字コードなのかがさっぱりわかりません。
何となくEUC-KRぽい気はするのですが・・・ブラウザはどうやって判定してるんだろう?
とりあえずhtmltodatで判定する術は全く思いつかないです。逆に教えていただきたいくらいで。

338 ◆/vmukiyuzw:2006/07/21(金) 18:34:34
いや、やっぱりUTF-8ですね。xyzzyでソース表示させると表示できました。
でもSJISに無い文字なのでUTF-8→SJIS変換の時点で化けてしまうのですね。

可能性としては、「文字コード自動判別」をOFFにしてSJIS変換させずに
UTF-8のまま読ませてそのままdat変換(dat自体の文字コードもUTF-8でないと
意味無いでしょうから)できないかと試してみました。まあそれなりのdatぽくは
なったのですが、やっぱ内部的に全部SJISで扱ってる関係か、一部化けてしまいます。
こんな小手先の対応ではなくて、内部的にも全てUTF-8で扱うしか対応策はない
わけですがあまりに大きな変更になってしまうため不可能と思われます。
(bregexp.dllまでは手を出せませんし)

というわけで回答としては「ごめんなさいできません」です。

339 ◆/vmukiyuzw:2006/07/21(金) 19:19:52
しかしこういうのができないとなるとUTF-8のhtmlを読めるメリットも
減ってしまうのも事実で・・・というか「UTF-8に対応しています」と
言うこと自体おこがましいというか・・・
確約は全く出来ないですがいつかはやってみたい気はしますね。

340663 ◆red7kKzN/E:2006/07/21(金) 21:38:34
>>338-339
検証ありがとうございます。お時間をとらせてしまって申し訳ありません。

残念ですが、諦めずにxyzzyyでのコピー貼りつけを模索してみます。
こんなページ↓とかありましたし(でも何だかうまくいかない・・・)

http://www.faireal.net/articles/6/08/

# 全く無関係な事ですが
# 上のページとか読むと xyzzyyって「ジジイ」と読むのかな と。

341 ◆/vmukiyuzw:2006/07/21(金) 23:01:57
>>340
現状htmltodatにはSJIS前提の処理が入りすぎてるのでどうがんばっても
無理でしょうね
てかいっそxyzzyでhtmltodat的処理を書いてしまうというのはどうでしょう?
2ch用ブラウザを作ってしまえるほどの能力を持つエディタですし。
(て自分ではあんまりやる気が無いので書いてるだけですが)

342 ◆/vmukiyuzw:2006/08/27(日) 00:24:35
バージョンアップしました。(0.8.6)
 ・beコードの仕様変更に対応した(つもり?)。

beコードの仕様がころころ変わっていてどうしたものかと考えていたのですが
どうやらなんとなく落ち着いたようなので対応しました。
具体的には、前は#の数で表されていたものがBRZ(1000)とかに変わったので
どちらにも対応できるよう修正しただけです。多分今後大きな変更がなければ
このままでいけるのではないかと。

あと>>319-320は全然手を出せてません。まあ真面目にやれば出来るんでしょうけど
「ある物を表示するのは簡単だけどない物を表示するのは案外面倒」だなと。

あと>>338-339は何をどうしてやればできるのかもわからない状態です。
申し訳ないです。

343 ◆/vmukiyuzw:2006/10/21(土) 17:49:09
バージョンアップしました。(0.8.7)
 ・正規表現にマッチせずdatに変換できないレスがあった場合、警告ウィンドウを
  出して該当レス番号を表示するようにした。

>>319-320を受けての修正ですが補足しておきます。

HTMLでは、一つのスレの中でも、一レス毎に見ていくと
・メール欄の有無
・名前欄の内容(デフォルトの名無しvsコテハン、トリップ等々)
・その他いろんな要素
により、形式が多少異なるものが混在しているのが普通です。

で、そのどれにもマッチするように正規表現を考えていくのですが
見落としてしまうことも当然あります。

こういうときはエラーになるべきなのでしょうが
正規表現の書き方によっては中途半端にマッチしてしまって
変換自体は成功してしまうことがままあります。
その場合は大抵、元のHTMLのレス数 > 変換結果のdat行数 となります。
(変換できていないレスが存在する)

では取りこぼしたレスはどれか?と調べようと思うと、HTMLとdatをいちいち見比べて
確認するしかなかったので、結構大変でした。
この確認を楽に出来るようにしたのが今回の修正です。

344 ◆/vmukiyuzw:2006/10/21(土) 17:58:47
さらに補足です。

正規表現が不十分でレスを取りこぼしたのではなく、
実際にレス番号が欠けているケースもあります。
いわゆる「透明あぼーん」状態です。

※これは2chでは基本的に発生しないはず(サーバ側でレスを物理削除するとそれ以降の
 レスは番号が前に詰められる)なのですが、JBBSでは板管理者の設定で透明あぼーんに
 することができます。例えば>>174-176

こういうケースは正規表現をいじってもどうしようもないので、>>176で書いたような
対処しかないと思われます。
レス番号が飛んだことがわかるのなら自動で補うこともできるのではと思われるかも
知れませんが、取りこぼしなのか透明あぼーんなのかを識別するのが難しそうだなと
思います。

345名無しさん:2006/11/14(火) 17:26:25
924 名前:水先案名無い人 投稿日:2006/11/14(火) 15:58:00 ID:uG63LS5u0
すみません、htmltodatをwindowsMeで動作確認取った方はいますか?
snapshotのログを変換したいんですが…


925 名前:659 ◆659BBSUzlk 投稿日:2006/11/14(火) 17:16:22 ID:OUGFpUIf0 ?2BP(111)
実際試してみて不具合がなければそれでいいんじゃないですかね

346 ◆/vmukiyuzw:2006/11/14(火) 20:23:34
これはマジレスすべきなのかどうなのかよくわかりませんが・・・
Meでも動くはずですよ。実際私のサブマシンはMeですし。
もし使ってみて不具合があれば報告ください。

347名無しさん:2006/11/17(金) 14:13:02
>このプログラムを使って発生した損害に関しては、一切の責任を負いません。
>使用、配布に制限はありません。自由にお使いください。
>動作の保証はありません。
>動作を確認したOSは、Windows XPのみです。

ここを早急に直すべきかと

348 ◆/vmukiyuzw:2006/11/17(金) 19:40:02
まあどういうレベルなら「動作を確認した」と言えるかという話になりますが
個人的にはXP以外の環境では充分にテストしたわけではないと思っているのです。
(サブマシンのMe環境も普段ほとんど使いませんし、たまたま使ってみたら動いたという感じなので・・・)
なのでreadmeの記述自体を変更する必要はないと考えます。

とはいえ環境に依存するような処理を意図的に入れるようなことはしてませんので
他の環境でも大抵動いてしまうだろうなと思うわけで・・・
>実際試してみて不具合がなければそれでいいんじゃないですかね
が一番自分の気持ちを代弁してくださってるかなと。

349名無しさん:2006/11/22(水) 01:29:54
つまり、投げやりと

350 ◆/vmukiyuzw:2006/11/22(水) 21:12:10
はい、もともと自分で使う用に適当に作ったものですから
それを「投げやり」と言われれば返す言葉はないです。

しかし、具体的に「ここが上手く動かない」とか指摘されれば
何らかのアクションは取れると思うのですが、
そういうのが全くないままに文句だけを言われても
どうしようもないのは理解していただけるでしょうか。

351名無しさん:2006/11/25(土) 01:24:47
ザ掲示板のスレををdat化したいのですが
http://thebbs.jp/
正規表現を教えていただけないでしょうか?

352 ◆/vmukiyuzw:2006/11/25(土) 02:39:15
>>351
非常に困る点が一つ・・・

そこのbbsではレスの最初が1からではなく0から始まっているようで・・・
2ch標準のdatてのはレスは当然1から始まっているので
0のレスを無視すると0のレスは当然読めませんし、一つずらすことにすれば
レスアンカーがずれます。

「2ch互換の板とは言えないからhtmltodatが扱える領域じゃないです」とは
あまり言いたくはないのですが、うまく扱える案が思いつかないのですが正直なところです。

353 ◆/vmukiyuzw:2006/11/27(月) 23:49:55
こちらの板向きの話なので引用させてください。

http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/175

>> s#(<title.*?) - DUMPER.JP(</title>)#$1$2#
> を
>> s#(<title.*?) - 2ちゃんねるみらー(</title>)#$1$2#
> に変えるとマッチしない。なんでだ・・。。

s#(<title.*?) - 2ちゃんねるみらー(</title>)#$1$2#k

のようにkオプションを付ける必要があります。

kオプションは文字を日本語(SJIS)として扱うためのものです。
(perlには存在しないbregexp.dllの独自拡張機能)

自分の書く正規表現でもついサボって付けてなかったりすることが多いのですが、
大抵はうまくいくけれど今回のように問題が出る場合もあるようです。

具体的には、"2ちゃんねるみらー"の"ー"の2バイト目が"["(16進で5B)にあたるため
正規表現の"["と解釈されてしまって、エラーとなるようです。

多分このように2バイト文字の2バイト目が正規表現の文法とぶつかるようなケースが
まずいのだと思うのですが、具体的にどの文字だとダメかとか調べるのも大変なので、
日本語にマッチさせるような正規表現を使う場合は基本的にkオプションを付けるように
お願いします。

# 今までは日本語は"投稿日:"ぐらいしか使ってなかったので問題なかった模様。
# 今後気をつけます。

354 ◆/vmukiyuzw:2006/11/27(月) 23:58:07
というか日本語の有無に関わらず無条件でつけることにしても
問題はないはずですが。
(パフォーマンスへの影響とかはわかりませんが)

355663 ◆fnwcOWFi56:2006/12/02(土) 15:53:50
いつもお世話になっています。
また要望です。

前処理で、特定の文字が出てきたら
それを別の文字に変換するような事とか出来ないでしょうか。

makimo.toさんの所のhtmlをdat化させたいのですが
他スレのリンクが
・同サーバ・同板の場合
<a href="../1127/1127911361.html">../1127/1127911361.html</a> <br>
・別板の場合
<a href="../../be_be/1106/1106239080.html">../../be_be/1106/1106239080.html</a>

とあるので、下の前処理をつけました。

s#<a href="JavaScript:be\((\d+)\)">\?(\#*)</a>#BE:$1-$2$3#gi
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://server\.2ch\.net/test/read\.cgi/board/$2/$3#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig

356663 ◆fnwcOWFi56:2006/12/02(土) 16:04:41
# そのままコピペしたので最初のbe処理まで入ってしまったです

上の前処理の2行目
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://server\.2ch\.net/test/read\.cgi/board/$2/$3#ig

このコード中の「server」と「board」は
スレッド毎に違うので、その都度書き換えないといけないです。

コード自体を毎回書き換えるのは煩雑なので
例えば「$server」「$board」として

$serverに「ex13」
$boardに「gline」

が入るようにするような事とか出来ませんでしょうか。

357 ◆/vmukiyuzw:2006/12/03(日) 01:46:45
>>356
とりあえず、変換オプションにテキストボックスを2つ追加して
$serverと$boardの値をそれぞれ指定できるようにするとかでしょうか?
一括処理のときは一括にする範囲で工夫してもらうとして・・・

# makimo.toさん自身のhtml2dat.cgiではどうやってるのかがわかれば
# いいんでしょうけど・・・

358 ◆/vmukiyuzw:2006/12/03(日) 10:52:37
ところで、beの前処理は内部に組み込んだはずなのに
書かれてるってことは効いてないのかな

と思って調べてみるとやはり考慮漏れで効いてませんでした。
合わせて直します

359 ◆/vmukiyuzw:2006/12/03(日) 17:28:28
バージョンアップしました。(0.8.8)
 ・変換オプションに$server、$board入力欄を追加。
  前処理スクリプト中に「$server」「$board」の文字が現れると
  入力された値に置換してから処理する。
 ・be前処理の考慮漏れを修正。

1つめについてはほぼ>>356の通りですが、前処理に
$server\.2ch\.net/test/read\.cgi/$board/
みたいに書いて、$serverに「ex13」$boardに「gline」と入力し、変換処理を行なうと
ex13\.2ch\.net/test/read\.cgi/gline/
と解釈して処理します。

2つめについては、考慮漏れ。
<a href="JavaScript〜 みたいにクォーテーションが付くケースを漏らしてました。
これで、前処理にbeの処理を入れる必要はなくなったはず。

あとついでに、>>353に関連して添付の前処理「DUMPER.JPスレタイ削除」を修正し
差し替えてます。

360663 ◆fnwcOWFi56:2006/12/03(日) 18:15:50
>>359
早い・・ありがとうございます。

書いてから「bbspink.comのケースもあったなあ」という事を忘れていましたが
上の場合だと
$server = ex13.2ch.net とか
$server = pie.bbspink.com 等に指定すれば良さそうです。

ありがとうございました。

361名無しさん:2006/12/04(月) 01:04:36
はじめまして!あの正規表現の対応を御願いできませんか?自分でしたところ、5時間かかってもできなかったので
断念・・・。makimo.toのログですが、上記にあったmakimo用の正規表現じゃ変換できませんでした・・・。


zipで纏めたhtmlです・・・。
http://winplus.or.tp/uploader01/upload.php?down=450
pass: 2ch
よろしく御願いします。

362663 ◆fnwcOWFi56:2006/12/04(月) 08:02:42
横からごめんなさい

>>361
ブラウザ保存されたhtmlみたいなので、空白や改行があってマッチしないです。
ちょっと見る気力がないので

makimo.toさんの元htmlなら
http://makimo.to/2ch/pc7_affiliate/1161/1161168474.html

●正規表現
m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class=sage>|<a href="mailto:(.*?)" class=mailto>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br><dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mik

●前処理
s#(/\d+\.html)\.html(</a>)#$1$2#ig
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\d+?/(\d+?)\.html(?:\.html)?(?:\#)?([^<]+?)?(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3$4#ig

●$server/$board
それぞれpc7/affiliate

●変換結果式
$4<>$2$3<>$5<>$6<>

●後処理
s#\#http#ttp#ig
s#([^h])ttp(://[^a-z0-9])#$1$2#igk


大量にある過去ログURLが記載してある
レス7のところでかなりもたつきますが
これでいけると思うです。

363663 ◆fnwcOWFi56:2006/12/04(月) 08:35:34
追記
zipで固めたほうのhtmlをdat化させたいなら
正規表現を下のと差し替えればいいかも。

m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class=sage>|<a href="mailto:(.*?)" class=mailto>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br>(?:</dt>)?<dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mi

あと前処理に下のを追加

s#(<br>) *#$1#ig

364名無しさん:2006/12/04(月) 16:59:10
>>363
おお!ありがとうございます。無事変換できましたが、なぜかわかりませんが、レス番20あたりからすべて
mailto:のリンクが貼られた状態で青くなってました。

365663 ◆fnwcOWFi56:2006/12/04(月) 17:40:50
うーむ

これでどうでしょう

m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class="?sage"?>|<a href="mailto:(.*?)" class="?mailto"?>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br>(?:</dt>)?<dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|(?:</dd>)?</dl>)#mik

366名無しさん:2006/12/04(月) 18:52:29
すげぇ。出来ました!。・゚・(ノ∀`)・゚・。ありがとー。
29chが閉鎖する前に必要なログ保存できそうです・・・。
ほんとうにありがとうございます。

367名無しさん:2006/12/05(火) 14:07:28
同じくmakimo.toのログなんですが上記の正規表現で変換できません。
http://makimo.to/2ch/log_musicj/959/959833697.html

どのように修正したらよろしいのでしょうか?

368663 ◆fnwcOWFi56:2006/12/05(火) 14:37:22
>>367
ぱっと見て「投稿日:」というのがそのhtmlにはあって
それでマッチしないのかなと思ったのですが

googleで「959833697」を検索すると、
既にhtml化されたものがありますので
どうしてもmakimo.toさんのhtmlからdat化させたいなら別ですが
そうでないのなら、下のDLしたほうが速いです

http://piza.2ch.net/log/musicj/kako/959/959833697.html

datはこちら

http://piza.2ch.net/log/musicj/kako/959/959833697.dat

369名無しさん:2006/12/05(火) 15:37:14
なるほど。それは気がつきませんでした。
お手間を取らせて済みませんでした。

370名無しさん:2006/12/07(木) 09:48:53
htmltodatで変換したdatをjaneで読み込むと
スレッド表示時でスレタイトル前に半角シャープが入ってしまいます。
現在はidxから修正していますが1つ1つだと大変なので
設定で修正するにはどのようにすればいいでしょうか?

371663 ◆fnwcOWFi56:2006/12/07(木) 10:50:15
>>370さん
>>362で変換したdatを
自分のJaneDoe View α Build ID: 0511280214で読み込んでみましたが
タイトル前に半角シャープはついてなかったので
URLとどのJaneなのか教えて頂けないでしょうか。

372663 ◆fnwcOWFi56:2006/12/07(木) 11:28:08
# 勘違いだったかも

>>370
makimo.toさんの所のhtmlとは書いておられないので
そうでなかったら わかんないです。。

373 ◆/vmukiyuzw:2006/12/08(金) 01:04:45
>>370さん
状況がよくわからないので以下の情報が欲しいです。
・URL
・使用した正規表現
・変換オプション(前処理・後処理等)を指定してる場合はその内容

374370:2006/12/08(金) 11:26:16
情報不十分で申し訳ないです。
http://makimo.to/2ch/pc8_avi/1164/1164172579.html
使用した正規表現
m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class=sage>|<a href="mailto:(.*?)" class=mailto>)? ?(.*) (?:</a>|</span>)?</span> (.*?) <br><dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mi
前処理makimo.to
s#<span class=(.*?)>(.*?)</span> \[(.*?)\] #<span class=$1><a href="mailto:$3" class=mailto>$2 </span></span> #g
w debug.txt
後処理なし
変換結果式makimo.to
$4<>$2$3<>$5<>$6<>
OpenJane α 0.1.12.2 を使っています。

375 ◆/vmukiyuzw:2006/12/08(金) 22:14:36
>>374
試しましたが再現しません。
htmlの時点でそもそもスレタイに半角シャープは付いていないので
datに変換しても入りませんしJaneで読ませても当然入りません。

・・・で思ったのですが、もしかして、半角「シャープ」じゃなくて
半角「スペース」ではないのですか?

半角スペースなら確かに入ります。htmlの時点から入ってます。
でもこれはmakimo.toでhtml化された時点で無駄に付加されたものっぽいです。
これを除去したいということであれば、前処理に

s#(<title>) ?(.*?) ?(</title>)#$1$2$3#i

とでも付け足せばよいかと思います。

376370:2006/12/09(土) 15:21:32
仰るとおり「シャープ」ではなく「スペース」の勘違いでした・・・。
前処理の設定方法で半角スペースも取れました。
お返事ありがとうございました。

377名無しさん:2006/12/09(土) 23:10:32
【疑問】今さら聞けない家事・料理【質問】39
http://2ch/ms/human5.2ch.net/test/read.cgi/ms/1117079913/1

前スレ
【疑問】今さら聞けない家事・料理【質問】38
http://human5.2ch.net/test/read.cgi/ms/1115798098/
の部分は

にくちゃんねるのHTMLでは、

 【疑問】今さら聞けない家事・料理【質問】37
../1113/1113750788.html

になっていて、リンクで該当するスレッドにいけるのですが

htmltodatでにくちゃんねるのHTMLをdatに変換すると

【疑問】今さら聞けない家事・料理【質問】37
../1113/1113750788.html

のままで、リンク先にはいけません。

htmltodatでにくちゃんねるのHTMLをdatに変換すると

 【疑問】今さら聞けない家事・料理【質問】37
../1113/1113750788.html
の部分を

【疑問】今さら聞けない家事・料理【質問】37
http://human5.2ch.net/test/read.cgi/ms/1113750788/

に変換できるようにするためには
どうしたらよいのでしょうか。


●正規表現
m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class=sage>|<a href="mailto:(.*?)" class=mailto>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br><dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|</dl>)#mik

●変換結果式
$4<>$2$3<>$5<>$6<>

に設定して使っています。

どうかよろしくおねがいします。

378名無しさん:2006/12/10(日) 05:13:27
>>377さん
試してないので何ですが
htmltodatの新バージョンを(DLしてないなら)DLして
>>362を試してみて下さい
($server/$boardはそれぞれhuman5/msを指定)

379名無しさん:2006/12/23(土) 21:46:32
パー速vip
http://ex14.vip2ch.com/part4vip/
保管庫にあるhtmlをhtmltodatでdat化するには、どのような正規表現
にすればいいんですか。

380名無しさん:2006/12/24(日) 00:27:38
>>379さん
専用ブラウザにそのURLを外部板として登録すれば
そのまま読み込めるのではないかと思うのですが
それでは駄目でしょうか。

381名無しさん:2006/12/24(日) 07:31:04
>>380
http://ex14.vip2ch.com/part4vip/kako/116/1161445050.html
これで登録しても
http://ex14.vip2ch.com/part4vip/
になり現行のスレしか表示されません
Jane Styleのアドレスに
http://ex14.vip2ch.com/part4vip/kako/116/1161445050.html
を入力してもログ取得できません、
ニュース速報(VIP)@避難所の過去ログはできたんですが
htmltodatで変換はできませんか、
ここで相談することではありませんがお願いします。

382名無しさん:2006/12/24(日) 08:54:56
>>381
これでどうでしょう

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>):(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mi

383名無しさん:2006/12/24(日) 09:07:45
>>382
ありがとうございますできました

384名無しさん:2006/12/28(木) 13:37:35
処女はお姉さまに恋してる第43話
http://makimo.to/2ch/bbspink-idol_hgame2/1151/1151736029.html

>>362の前処理にある「2ch\.net」を「bbspink\.com」に、$server/$boardにそれぞれidol/hgame2を入れて変換して
みたのですが、テンプレにあるエロゲー作品別板から他所の板(2ch.netだけでなくbbspinkの板も)へのURLがうまく
変換できません。
どのようにすれば良いのでしょうか?

385名無しさん:2006/12/28(木) 21:53:07
>>378
いそがしくてなかなかお返事できなくて申し訳ありません。

>>362
でやったらうまく変換できました。
大変ありがとうございました。

これからも宜しくお願いします。

386 ◆/vmukiyuzw:2006/12/28(木) 22:23:38
>>384さん
makimo.toでのbbspink.comのログに関しては

(1)同じ板内へのリンク:../1150/1150506092.html
(2)2ch.netの別板へのリンク:../../game9_gal/1139/1139744135.html
(3)bbspink.comの別板へのリンク:../../bbspink-idol_hgame/1149/1149173250.html

・・・ということみたいです。で、2ch.netのログとの扱いの違いは

(1)2ch.netと同じ形式。ただし変換結果は当然bbspink.comにする必要あり。
(2)2ch.netと同じ形式。ただし(1)とは逆で変換結果は2ch.netにする必要あり。
(3)鯖名の前にbbspink- の文字列がつくようだ。変換結果はもちろんbbspink.com。

間違いはあるかもしれないけどおおむねこんな感じかと。
これを踏まえ>>362の前処理を書き換えるには・・・
・・・申し訳ない今日はエネルギー切れです。自力で考えるか、わかる人回答してあげて下さい。

387 ◆/vmukiyuzw:2006/12/28(木) 23:52:01
・・・と言いながらももうちょっとがんばってみよう・・・
まず>>362の前処理は以下のとおり

s#(/\d+\.html)\.html(</a>)#$1$2#ig
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\d+?/(\d+?)\.html(?:\.html)?(?:\#)?([^<]+?)?(</a>)#$1http://$server\.2ch\.net/test/read\.cgi/$board/$2/$3$4#ig

1行目は2ch.netかbbspink.comかに関係ないのでそのままでOK
2行目と4行目は「\.2ch\.net」を「\.bbspink\.com」に修正すればOK
問題は3行目ですが>>386の(3)のとおりbbspink-があるかないかで
bbspink.comなのか2ch.netなのかが変わってきます。
(bbspink.comのスレだが中に2ch.netに対するリンクがありうるので無視するわけにはいかない)
なので2つに分けてしまいましょう。

s#(>)\.\./\.\./bbspink-(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.bbspink\.com/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig


結局まとめるとこんな感じでしょうか

s#(/\d+\.html)\.html(</a>)#$1$2#ig
s#(>)\.\./\d+?/(\d+?)\.html(</a>)#$1http://$server\.bbspink\.com/test/read\.cgi/$board/$2/$3#ig
s#(>)\.\./\.\./bbspink-(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.bbspink\.com/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\.\./(.+?)_(.+?)/\d+?/(\d+?)\.html(</a>)#$1http://$2\.2ch\.net/test/read\.cgi/$3/$4/$5#ig
s#(>)\.\./\d+?/(\d+?)\.html(?:\.html)?(?:\#)?([^<]+?)?(</a>)#$1http://$server\.bbspink\.com/test/read\.cgi/$board/$2/$3$4#ig


ちなみに3行目、4行目はこの順番でないとダメです
なぜなら、4行目の(.+?)_はbbspink-pieにもヒットしてしまうので3行目で先に変換しておかないと
2ch\.netにみなされてしまいまずいことになるからです

388 ◆/vmukiyuzw:2006/12/31(日) 01:11:47
makimo.toの過去ログに関しては、663 ◆fnwcOWFi56 さんが書いてくださった
>>362 でおおむね変換できるものと思います。
※ただ、2ch.netではなくbbspink.comの過去ログに関しては
 前処理を>>387のものにする必要があると思います。
 (正規表現等は>>362のものでOKかな?)

しかし、makimo.toのログにはあまりにいろんなバリエーションがありますので、
(なんせ620万スレッドを超える過去ログを保有しているらしいですから)
>>362でも>>387でも変換できないパターンがあると思うのです。
それらに個別に対応するには自分ひとりのパワーではあまりに不足に思えますし
他の方にサポートをお願いするにも限界があるかなと思いますし・・・。

----------------------------------------------------------------------------
なので、正直言うと、今年末でmakimo.toが閉鎖して、どうしようもなくなって
一息つくまではできるだけレスとかせず逃げ回っていようと思っていたのです。
それしかできることは思いつかなかったので・・・
----------------------------------------------------------------------------

しかし、実際にはmakimo.toさん側でもいろいろ規制をかけられたりして
無制限にHTMLがダウンロードされることもなく、結果ここにも質問が殺到したり
することもなかったので、まあホッとしたという感じです。

明日(てもう今日か)帰省するので今年最後の書き込みです。
皆様よいお年を。

389名無しさん:2006/12/31(日) 21:08:09
遅くなりましたが、mukiyuさんありがとうございました。
他のスレも何個か見ましたが、問題はなさそうです。

390名無しさん:2006/12/31(日) 21:12:29
名前が抜けてしまいましたが>>389=384です。

391名無しさん:2007/01/06(土) 01:37:31
htmltodat0.8.8を使っています
立ち上げるとhtmltodatの枠の部分が小さく表示されdat保存ボタンがあるところまで表示されません。
スクロールバーを使わなくては下まで表示されないのです。
同様に変換オプションや一覧表示なども下まで表示されません。
改善策はあるのでしょうか?

392名無しさん:2007/01/06(土) 09:35:13
>>391
俺も同様。ただし自宅のWin98で。

職場のWin2000では正常に表示される。

参考までに。

393 ◆/vmukiyuzw:2007/01/06(土) 15:55:45
>>391さん
原因のひとつらしき点を修正してみましたが、環境による問題なので
十分に検証することが出来ません。
なので、以下の暫定版で動作確認して結果報告いただけたらありがたく思います。
>>392さん他同様の現象が出る方にも)

http://mukiyu.hp.infoseek.co.jp/htmltodat/htmltodat0.8.8.1.zip

中身はhtmltodat.exeだけです。
今お使いのバージョンをバックアップした上で上書きしてお使いください。

394名無しさん:2007/01/07(日) 05:22:39
この保管ログが上手く変換できません…
ttp://search.mimizun.com:82/cgi/dattohtml.pl?http://mimizun.com:81/log/2ch/sec/pc8.2ch.net/sec/kako/1153/11531/1153128180.dat

『read.cgi7.00?』とかで変換はできるのですが「<><>」が「[]&nbsp;投稿日:」になってしまいます…


…「直接datで落せば」とか言われるのは判ってますが、
是非上手い変換スクリプトをおながいします

395391:2007/01/07(日) 09:22:29
もう遅れましたが、自分はXPです。

396391:2007/01/07(日) 09:24:33
>>393
すみません。EXEをアボーン設定しているのでレスが見えませんでした。
確認してみます。

397名無しさん:2007/01/07(日) 09:26:51
>>393
改善されました。ありがとうです!

398 ◆/vmukiyuzw:2007/01/07(日) 18:05:42
>>394さん
663 ◆fnwcOWFi56 さんが別のところで考えてくださったそのままのコピペですが

m#<dt.*?>([0-9]+).+?<b>(?:.+?"mailto:(.+?)">)?(.+?)(?:</a>)?</b></font> ?:(.*?)<dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi

ちなみに
> …「直接datで落せば」とか言われるのは判ってますが、
何故わざわざhtmltodatを経由したいのか参考までに教えていただきたく思います。

399 ◆/vmukiyuzw:2007/01/13(土) 17:16:04
さて、>>393の件ですが>>391さん以外からは動作報告があがってないようですね。
98/Me系での動作確認が取れればそのまま正式バージョンにしようかと思っていたのですが
当面ペンディングですかね。
まあ次にバージョンアップする機会があればそのときに一緒に入れてしまうと思いますが。

400名無しさん:2007/01/13(土) 20:12:55
>>393 >>399
>>391さんと同じXPですがきちんと表示されるようになりました。
ありがとうございました。

401名無しさん:2007/01/16(火) 22:45:39
要望です。
クッキー・User-Agent・ベーシック認証に対応して頂けないでしょうか。

クッキーの件ですが
remix2ch(http://contents-factory.net/remix2ch/)さんや
makimo.toさんの所でクッキー送信が必要な場合があります。

User-Agentですが
http://pita.paffy.ac/さんのdatを直接取得したい時や
●ログイン時などでMonazillaを使いたい場合があります。

ベーシック認証ですが
p2のhtml取得時に必要な場合がありますので(滅多にないですが)
あったら嬉しいです。


どこまで突っ込んで書いたらよいのかわからないので
簡単に書いたです。
詳細は下記で

http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/450-451n

以上、宜しくお願い致します。

402 ◆/vmukiyuzw:2007/01/17(水) 21:48:13
>>401さん
いずれもHTTPリクエストヘッダで指定される内容ですね。

他にも指定したいものが出てくるかもしれませんし
(例えばリファラを要求されるサイトとかあるかもしれませんし)
汎用的に任意のヘッダ要素を追加指定できるようなメモウィンドウでも
付けましょうかね。
具体的にどんな形式で指定すべきかは、まあどのみち
proxomitron等でモニターして自分で調べないといけないと思うので、
使う側にお任せということで。
こんなとこでいかがでしょう。

ところで、>>401であげられてる例の半分くらいはhtmlというより
datを直接取得したい場合のような気がしますね。
「htmltodat」なのにdatを直接取得してどうするという話ですが
今では変換処理を経由せず前処理で直接ファイル保存ができるように
なってるのでそれを使っていただければいいかと思います。

(以前この機能がなかったときにはたわむれにdat→dat変換の
正規表現を書いたこともありましたが)

403663 ◆fnwcOWFi56:2007/01/17(水) 23:02:37
>mukiyuさん
是非その線でお願いします。
もう一ついいでしょうか。

subject.txt作成の時
旧形式のdatをまとめる場合が結構ありますので(私だけかな)
区切り記号(デリミタというのでしょうか)を
「<>」と「,」を選べるようにして頂けないでしょうか。

404 ◆/vmukiyuzw:2007/01/18(木) 00:18:11
>>403
んーと、ちょっと確認が。

旧形式のdat(カンマ区切り)からsubject.txtを作るのはいいとして、
subject.txt自体は現行の形式(「<>」で区切られている)でいいですよね?

※というのも、monazillaの資料を見ていると、subject.txt自体にも旧形式
 (カンマ区切り)のものが存在するようなのです。ので一応念のため。

あと旧形式のdatってデリミタの「,」と区別するためにdat中に現れる「,」を
「@`」に変換してますよね。
これもsubject.txt作成時には「,」に戻す必要がありますよね。

(アットマークが半角か全角か定かでない・・・自分の記憶では全角なのですが
monazillaの資料だと半角なのです。念のため両方変換するか)

405663 ◆fnwcOWFi56:2007/01/18(木) 20:37:29
> mukiyuさん

> subject.txt自体は現行の形式(「<>」で区切られている)でいいですよね?

いいですいいです。

アットマークですが
確か全角みたいです。(「,」)
>>386のdatとかそうですし。

http://piza.2ch.net/log/musicj/kako/959/959833697.dat

406 ◆/vmukiyuzw:2007/01/20(土) 20:31:16
バージョンアップしました。(0.8.9)
 ・「proxy設定」ボタンを削除し、代わりに「受信オプション」を追加。
  proxy設定機能は受信オプション設定内にまとめるようにした。
 ・受信オプション設定に「HTTPヘッダ追加」欄を追加。
  Cookie,User-Agent,Authorization等のヘッダを任意に指定できるようにした。
 ・subject.txt作成で、旧形式のdat(カンマ区切り形式)からもsubject.txtを
  作成できるようにした。
 ・特定の環境下で、フォームの内容が枠に収まらずスクロールバーが出てしまう
  不具合を修正。


まず「HTTPヘッダ追加」についてですが、>>401-402のとおり
HTTPリクエストヘッダに任意の行(RFC邦訳を見ると「ヘッダフィールド」と
呼ぶみたいですが)を追加するためのものです。
例えば

Cookie: text=dat<>1<>0<>false<>mycss=<>0<>0<>3000<><><><>
User-Agent: Monazilla/1.00(htmltodat/0.8.9)

のような感じでヘッダに含めて送信したい内容をそのまま指定します。
また、変換オプションの前処理等と同様、保存・呼び出しが可能です。
(拡張子は'.hdr')

※ちょっと内部処理の話なのですが、デフォルトで存在するヘッダ行に
 単純に行を追加するだけなので、デフォルトの行を上書きすることは
 基本的には出来ません。
 但し、User-Agentだけは例外で、(変更したい要望があったので)
 上書きできるようにしています。
 もし、他に上書きしたい行がある場合は(あんまりないとは思いますが)
 要望していただければ検討します。


次にsubject.txt作成の旧形式dat対応ですが、旧形式と現行形式を混在させて
処理することは出来ません(まあ単に判別が面倒だからなのですが・・・)。
フォルダを別にして処理する等して対処をお願いします。


最後の不具合の修正については、>>391-392で報告いただいて>>393
対応した(つもり)のものですが、まだあまり自信がないので、
まだ不具合があればご報告ください。

407663 ◆fnwcOWFi56:2007/01/20(土) 21:12:14
>mukiyuさん

ありがとうございます。
今日は不調なので後日試させて頂きます。

408663 ◆fnwcOWFi56:2007/01/21(日) 12:41:37
試してみたです

出来ました!
凄いです!
ありがとうございました!

409 ◆/vmukiyuzw:2007/01/23(火) 00:37:53
ちょっとスレ違いなのですが
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1061022990/15

htmltodat自体もvistaで動くのかという気もするのですが
まあ何とかなるのではと思います。
JaneLogMoverは内部でOSが2000/XP系か98/Me系かを判定して
処理を分岐しているので、そろそろ対応を考えておかないと
まずいかなと思ったわけです。
というわけで情報お持ちの方はよろしくお願いします。

410名無しさん:2007/01/24(水) 17:56:55
http://ex14.vip2ch.com/part4vip/kako/116/1166959235.html

このスレを変換しようと>>382で書かれている正規表現を使用したのですが
途中でエラーになります。ちゃんと変換できる方法はありますか?

411663 ◆fnwcOWFi56:2007/01/24(水) 19:08:05
>>410さん
「:」と日付の間の半角スペースが無いのが原因みたいです。下のでどうでしょう

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>): ?(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mik

412 ◆/vmukiyuzw:2007/01/24(水) 19:58:44
>>410-411さん
私の環境では>>382の正規表現で正常に変換できましたが。

>>411(663 ◆fnwcOWFi56)さんの

> 「:」と日付の間の半角スペースが無いのが

ですが、これが無くても結果に無駄な半角スペースがつくだけで
エラーにはならないと思うのです。
htmlソースをざっと見てみましたが:と日付の間に半角スペースは
見当たりませんし。

・・・で、推測ですが、いったんブラウザで表示させたものを
「名前を付けて保存」として保存したhtmlを変換しようとしてませんか?
もしそうであれば、htmltodatにURLを直接入力してhtmlを取得して
やってみてください。
※過去にも何度か書きましたがブラウザの機能で保存すると
 htmlが適当に加工・整形されてしまうので、正規表現は
 変えないといけなくなる場合があります。

あと、スレタイに余分なものがついているので、

s#(<title>.*?)@VIPService過去ログ倉庫(</title>)#$1$2#ik

と入れて整形したほうがいいんじゃないでしょうか。

413 ◆/vmukiyuzw:2007/01/24(水) 20:20:42
ちょっと言葉足らずでした。

s#(<title>.*?)@VIPService過去ログ倉庫(</title>)#$1$2#ik

と「前処理」に入れて整形したほうが〜

です。

414名無しさん:2007/01/25(木) 00:22:43
>>411-413
ありがとうございます
>>411さんの正規表現でできました
その後>>382で試したところエラーになりました
前処理は役に立ちました
ありがとうございました

415 ◆/vmukiyuzw:2007/01/25(木) 08:52:05
>>414さん
解決したのでもう見ておられないかもしれないですが・・・
>>411でも書きましたが>>410のURLは>>382の正規表現で私のとこでは
うまくいくのです。
同じURLを同じ正規表現で処理してエラーになったりならなかったりする
というような状況は経験に無いので、以下の点だけ確認させてください。

・環境(OS、htmltodatのバージョン)
・エラーの内容(多分「一行が長すぎるか正規表現が正しくありません」だと
 思うのですがもしそれ以外だったらその内容)
・エラーが出たときの、「読込行:xxxx/変換行:xxxx/バッファサイズ:xxxx」
 (画面左下、「dat変換結果」欄の下に表示されているはず)の内容

以上、よろしければお願いします。

416名無しさん:2007/01/25(木) 10:37:03
http://search.mimizun.com:82/perl/dattohtml.pl?http://mimizun.com:81/log/2ch/hgame2/idol.bbspink.com/hgame2/kako/1163/11635/1163503512.dat

みみずん検索のdatを変換するには、どのようにすればよいのでしょうか?
よろしければ、ご教授ください。

417名無しさん:2007/01/25(木) 15:31:10
>>415
OS XP Media
htmltodat 0.8.9
エラーの内容「一行が長すぎるか正規表現が正しくありません」
「読込行:176/変換行:0/バッファサイズ:10100」

こうなりました

418 ◆/vmukiyuzw:2007/01/25(木) 21:12:33
>>416さん
URLの先頭から dattohtml.pl? までを削って
http://mimizun.com:81/log/2ch/hgame2/idol.bbspink.com/hgame2/kako/1163/11635/1163503512.dat
にすれば直接datを落とせます。

どうしてもhtmlから変換したいということなら
>>398 でできると思います。

419 ◆/vmukiyuzw:2007/01/25(木) 21:25:00
>>417さん
ご報告ありがとうございます。
申し訳ないのですが最後にもう一点だけ確認していただけないでしょうか。

>>382の正規表現の最後に k を付けて

m#<dl><a.+?>\t([0-9]+) 名前:(?:<font color="forestgreen">|<a href="mailto:(.+?)">)<b>(.*?)</b>(?:</a>|</font>):(.+?)<dd>(.+?)</dl>(<dl>|<hr)#mik

これでもエラーになるでしょうか?

420416:2007/01/25(木) 21:59:16
>>418
ご回答いただき誠にありがとうございます。
また、よく調べもせずに安易に質問して申し訳ございませんでした。

421名無しさん:2007/01/25(木) 22:23:09
>>419
同じエラーになりました
読込行100を過ぎたあたりからスピードが遅くなっています

422 ◆/vmukiyuzw:2007/01/26(金) 22:11:01
>>421さん
再度のご報告ありがとうございます。

残念ながら、エラーになる原因がわからないです。
>>411がOKで>>419がエラーになる理由もわかりません。
(正規表現上での違いは一箇所しかないのです・・・でもそこが
エラーになる原因とは考えにくいのです)

これ以上はおそらく環境の問題だと思うのですが、>>421さんのPCを
直接触らせていただくくらいしか調べる方法が思いつかないので、
この件は申し訳ないですがいったん中断にさせてください。。。

もし他に何か思い当たる点があればご報告頂きたくお願いします。

423 ◆/vmukiyuzw:2007/02/09(金) 23:29:31
>>422の続きですが
このスレ自体をブラウザで表示した際に、>>419のように書いたな正規表現が
ワードラップの関係で途中で改行されて、そこに不要な半角スペースが
入ってしまう可能性があるようです。
ブラウザの文字サイズを最小にするか表示領域の横幅を最大にして
改行されない状態でコピペするとうまくいくかもしれません。

424 ◆/vmukiyuzw:2007/02/10(土) 00:01:46
makimo.to(にくちゃんねる)のhtmlを現状でdat化する方法を
まとめておこうかな。

・「受信オプション」-「HTTPヘッダの追加」で
Cookie: text=dat<>1<>0<>false<>mycss=<>0<>0<>3000<><><><>
または
User-Agent: Monazilla/1.00 (htmltodat/0.8.9)
を指定する。
・該当のURLを入力してHTML取得(この時点でdat形式で取得されるはず)
・「変換オプション」-「前処理」で
w $SELECTFILE.dat
を指定する。ついでに「dat変換をしない(前処理のみ行う)オプションを
チェック。
・「変換開始」ボタンを押すとファイルの保存ダイアログが出てくるはず。
で任意のフォルダにdatを保存。

現状ではログを7日間しか保持されていないそうなので、それ以前にdat落ちした
ログとかでは無理ですが、そうでなければこちらの方法のほうが簡単だと思うので。

425 ◆/vmukiyuzw:2007/02/10(土) 02:34:36
>>424の方法はちょっと保留にさせてください。
なんかdatの最後にゴミがくっついてくる場合があるようで・・・
にくちゃんねる側の不具合の可能性もあるのですが
gzip圧縮で転送されてくるのでhtmltodat側での解凍の
不具合である可能性もあります。
調査します。

426 ◆/vmukiyuzw:2007/02/10(土) 15:24:41
バージョンアップしました。(0.8.10)
 ・gzip解凍の際に結果にゴミがついてしまうバグを修正。
 ・受信データの最後が改行コードであった場合に、改行コードが欠落して
  しまうバグを修正。

今回は不具合対応のみです。

どちらも結構前からあったバグだと思われますが、
gzip解凍のゴミ:gzip圧縮されたデータを扱うこと自体が少なかったと
思われるのと、html→dat変換に必要ない部分は基本的に見ていないので
問題とはならなかったと思われます。
改行コードの欠落:これもhtml→dat変換には関係ない部分ですので
発覚しなかったと思われます。

いずれも、>>424の方法で直接datを取得しようとして「何か変だ・・・」
と思い調べてみると発覚したものです。
改行コードの欠落については、ブラウザによっては問題なく読めるものも
あったのですが、最後1レスを認識しなくなるブラウザもあったので
対応しました。

427名無しさん:2007/02/18(日) 13:13:05
http://kiritsukegomen.hp.infoseek.co.jp/log/jisaku1145017036.html
のログを変換しようとすると、「1行が長すぎるか正規表現が正しくないようです」
となって読み込みが途中で止まってしまいます。
ここの他のログはread.cgi7.00?で変換できたのですが、このログだけダメです。
正規表現をどう変えればいいのでしょう?

428663 ◆fnwcOWFi56:2007/02/18(日) 15:15:50
>>427さん
makimo.toさんのhtmlをブラウザ保存したものみたいなので
下の正規表現で何とかなるかもです

m#<dt>([0-9]+) 名前:<span .*?>(?:<span title="(.*?)" class="?sage"?>|<a href="mailto:(.*?)" class="?mailto"?>)? ?(.*) (?:</a>|</span>)?</span> ?(.*?) <br>(?:</dt>)?<dd> *?(.*?) <br> *?<br> *?(<a name.*?>|</tl>|(?:</dd>)?</dl>)#mik

前処理その他は>>362でいいのかも

429427:2007/02/18(日) 16:44:04
早速ありがとうございます。
>>362の$boardを変更するとうまくいきました。無料サポありがとうございます。

430<削除>:<削除>
<削除>

431663 ◆fnwcOWFi56:2007/03/09(金) 19:24:26
いつもお世話になっております。
また要望よろしいでしょうか。

後処理でもwコマンドを使えるようにしては頂けないでしょうか。

現状ではwコマンドは前処理でのみ使えるのですが
後処理でも使えるなっていれば有り難いです。

例えばdatの保存先フォルダを自動取得して
それが
C:\My Documents\Nida070202\Logs\2ch\案内\ガイドライン\1165245437.dat
だった場合
後処理でwコマンドが使えたら

w C:\My Documents\DoeView051128\NidaUTF8\Nida070202\Logs\2ch\案内\ガイドライン\1165245437.dat

とやれば、dat変換完了と共に該当フォルダに保存出来るので嬉しいのですが。
もし可能でしたらお願い致します。

432 ◆/vmukiyuzw:2007/03/09(金) 22:38:04
なるほどそういう用途がありましたか。目からウロコです。

実は現状の仕様は
・前処理:読み込んだHTML全体に対して作用するようになっている
・後処理:変換結果のdatの一行ずつに作用するようになっている
ので、単純に前処理と同じように処理したのではたとえばdatが1001行あれば
wコマンドでの保存処理も1001回行うことになってしまい非常に効率が悪い
ことになってしまいます。

・・でも考えてみると、前処理と後処理で仕様が異なっているのには
特に深い理由はなく、

・前処理:相手にするHTMLがどんな形式かわからない。ので一行ずつ処理するのは
 意味がない可能性があるので、全体に作用するようにした
・後処理:dat形式に整形された後なので形式はわかっている。であれば一行ずつ処理
 するほうが簡単かなと思った

ということだったりします。
で、後処理のほうも前処理同様一行ずつではなく変換結果全体に作用するように
仕様変更すればいいのかもなのですが、今の仕様を前提に後処理を使っている人が
もしいたら困られるかもしれないです。(まずいないだろうとは思うのですが・・・
大抵代替手段はあると思いますし)

なのでしばらくペンディングにさせてください。
仕様変更されたら困ると言う方がおられればご報告ください。

433663 ◆fnwcOWFi56:2007/03/23(金) 20:19:37
# ペンディングの件理解しました
# お気が向いた時にお願い致します


毎回すみません。
再び要望と正規表現を教えて頂きたく思います。

まずは要望ですが
各種設定をURLに含めるタイプのものに対応して頂けないでしょうか。

具体的な例をあげると
例えば下のスレッド

(1)http://s.s2ch.net/test/-/wwwww.2ch.net/news4vip/1174582871/1-1001

これだと「省17」等で省略されたり
ID・AASのリンクがついてしまっています。
最下部の設定(「設」)で変更すると
設定はクッキーではなくURLに含まれてしまうようです。
とりあえず下記

(2)http://s.s2ch.net/test/---.uaY!FROM=&amp;mail=&amp;color=000000+efefef+0000FF+0000FF+FFFFFF&amp;size=3&amp;NG_NAME=&amp;NG_MAIL=&amp;NG_DATE=&amp;NG_MESSAGE=/wwwww.2ch.net/news4vip/1174582871/1-1001

つまり、省略やその他設定を変更するには
URLの
「〜test/-/server.2ch.net/〜」

「〜test/---.uaY!FROM=&mail=&color=000000+efefef+0000FF+0000FF+FFFFFF&size=3&NG_NAME=&NG_MAIL=&NG_DATE=&NG_MESSAGE=/server.2ch.net/〜」
に変えればいいみたいです。

見たところ、この文字列は他でも大体同じようなので
htmltodatのほうで対応しては頂けませんでしょうか。
つまり、例えば(1)のURLを入力実行すると
(2)のURLで送信取得するというように。

434663 ◆fnwcOWFi56:2007/03/23(金) 20:41:44
次に、これのdat化について教えて頂けないでしょうか。

URL再掲
http://s.s2ch.net/test/---.uaY!FROM=&amp;mail=&amp;color=000000+efefef+0000FF+0000FF+FFFFFF&amp;size=3&amp;NG_NAME=&amp;NG_MAIL=&amp;NG_DATE=&amp;NG_MESSAGE=/wwwww.2ch.net/news4vip/1174582871/1-1001

これに対する正規表現を考えてみたのですが
メール欄の箇所がうまくマッチしないです。
いちおう考えてみたものは下記

m#(?:<form action=i>|<br><br>)([0-9]+):<font color=forestgreen><b> </b>(.+?)<b> </b></font>(?::(.+?))?:(.+?) <br>(.+?)(<br><br>)#mik

変換結果式はメール欄逆転で。

途中の数レスが変換出来ないですが
beリンクの箇所のようなので、前処理で何とかなると思うです。

問題はメール欄で

メール欄未記入の場合
</font>:2007/03/23(金) 02:01:11.88 ID:hWYzwspD0 <BR>

メール欄に記入されている場合
</font>:sage:2007/03/23(金) 02:22:50.98 ID:CU23YYu/0 <BR>

というように
「</font>」と「:(日付)」の間にメール欄が(ある場合は)入るのですが
これはどのように切り分ければ良いのでしょうか。

435 ◆/vmukiyuzw:2007/03/24(土) 00:34:13
>>433
htmltodat流にやるなら、やっぱ正規表現を指定して変換するとかでしょうかね。
たとえば
s#(http://s.s2ch.net/test/)-(.*)#$1---.uaY!FROM=(中略)NG_MESSAGE=$2#
みたいな感じで。

>>434
多少強引ではありますが以下のようなのでどうでしょう。
m#(?:<form action=i>|<br><br>)([0-9]+):<font color=forestgreen><b> </b>(.+?)<b> </b></font>(?::([^/]+?))?:(.+?) <br>(.+?)(<br><br>)#mik

単にコロンとコロンの間にマッチさせようとすると、時刻表示の中のコロンに引っかかって
おかしくなってしまうので、[^/]+?としてみました。
(スラッシュ(日付表示の中に登場する)以外の繰り返し+コロンにマッチさせることで
結果的に時刻表示中のコロンにマッチさせるのを避けている)

これでもメール欄中にスラッシュがあるとまずいのですがまあそんなのは
レアケースだろうということで。

436 ◆/vmukiyuzw:2007/03/24(土) 01:01:53
よく考えるとメール欄中にスラッシュというのは本来の使い方からすると
決してレアケースではないはずですね^^;
まあそういう使い方が現状ではレアケースってことで。

437663 ◆fnwcOWFi56:2007/03/24(土) 17:49:31
即レスありがとうございます

> (スラッシュ(日付表示の中に登場する)以外の繰り返し+コロンにマッチさせることで
> 結果的に時刻表示中のコロンにマッチさせるのを避けている)

目からウロコでした。こういう使い方も出来るとは勉強になりました。


URLを正規表現で指定して変換するような機能ですが
あったら嬉しいです。
2chのURLを入力してsnapshotの該当URLに変換するとしたら
s#(http://.+)#http://p2.chbox.jp/read.php?url=$1/all#i
とか。
やって頂けたら嬉しいです。

438 ◆/vmukiyuzw:2007/03/24(土) 23:58:30
URLを正規表現で変換するような機能なら多分受信オプションに追加して
他のオプションと同様選択とか追加とかできるようにする感じですかね。

しかしまあ個別にオプションを指定するのは汎用的かもしれませんが
面倒かもしれないなと思う今日この頃。
まとめていっぺんに指定(とか保存)とかできるようにしたほうがいいのだろうな
しかしどうやってやればいいのかと考える次第です。

439名無しさん:2007/03/30(金) 09:50:52
えと、2ch DAT落ちスレ ミラー変換機 ver.4 で検索してその22に目的のスレありました。
その22:ttp://namahage.dip.jp/public/2ch_s/read.asp?url=http://pc8.2ch.net/test/read.cgi/cg/1147348472/

変換方法教えてもらえませんでしょうか。
スレ違いだったらすみません。

440439:2007/03/30(金) 11:08:10
色々ググって解決しました。
生禿さんとこは以下でいけるようです。
お騒がせしました。

正規表現
m#<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b> ?(.*?)<dd> ?(.*?)<br><br>(<dt>|</dl>)#mi

前処理
s#(<title>.+?) ?\(\d+\)(</title>)#$1$2#
s#<font color="red">生禿あぼーん</font>#あぼーん#igk
s#(<b>)ナナシ(</b>)#$1$server$2#igk

$server
名無しさん@お腹いっぱい。

441 ◆/vmukiyuzw:2007/04/01(日) 15:56:47
# 今年のエイプリルフールは特に何もないようなので・・・

バージョンアップしました。(0.8.11)
 ・受信オプション設定に「URLの変換」を追加。
 ・変換オプション・後処理の仕様を変更。
  出力結果のdat一行ずつに対して作用するようにしていたのを、出力結果全体
  に対して作用するよう修正。
  また、前処理と同様のwコマンドを追加。

URLの変換については>>433,>>435,>>437参照。

後処理の仕様変更については>>431-432参照。
もし変更の影響が出た場合は、sコマンドの最後にgオプションとか付ければ
大抵回避できると思います。

442名無しさん:2007/04/05(木) 00:57:05
スイマセン。よろしいでしょうか
http://jbbs.livedoor.jp/computer/6306/storage/1169464997.html
上のURLをjbbs過去ログの正規表現で変換しようとしたのですが
[1行が長すぎるか、正規表現が正しくないようです]
と出てしまいます。(他の過去ログも同じ)
自分がやった方法は
1、URLをコピペしてHTML取得
2、一覧表示からjbbs過去ログを選ぶ
3、変換開始 ←ここで[1行が〜]
と出てしまいます。
ちなみに上記以外はどこもいじっていません…
解決策があればお願いします。

443 ◆/vmukiyuzw:2007/04/05(木) 01:30:23
>>442さん
jbbsの過去ログの形式が微妙に変更されているようですね。
あわせて正規表現を以下のように変更してみました。

m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

一応、以前の形式とも互換性を取れるようにしたつもりです。

444名無しさん:2007/04/05(木) 01:48:50
>>443
夜更けにこのような迅速な対応…感謝します!!
早速使わせていただきました、datも問題なくばっちり一発でしたww
本当にありがとうございますm(__)m

445名無しさん:2007/04/11(水) 18:19:42
私も>>442の、[1行が長すぎるか、正規表現が正しくないようです]
のエラーが出て変換出来ませんが、>>442とは別なようでした。

2ch DAT落ちスレ ミラー変換機 ver.4の、その9のsnapshotなんですが
以下のようなアンカの多いレスで失敗しています。

>1>2>3>4>5>6>7>8>9>10
>11>12>13>14>15>16>17>18>19>20
>21>22>23>24>25>26>27>28>29>30
>31>32>33>34>35>36>37>38>39>40
>41>42>43>44>45>46>47>48>49>50
>51>52>53>54>55>56>57>58>59>60
>61>62>63>64>65>66>67>68>69>70
>71>72>73>74>75>76>77>78>79>80
>81>82>83>84>85>86>87>88>89>90
>91>92>93>94>95>96>97>98>99>100

このような場合はどうすればいいのでしょうか?

446445:2007/04/11(水) 18:28:40
アンカだけでなくURLリンクも多く貼られていると同様です。

447445:2007/04/11(水) 18:30:02
アンカだけでなくurlリンクも多く貼られていると同様です。

448 ◆/vmukiyuzw:2007/04/11(水) 20:21:10
>>445さん
ミラー変換機その9(snapshot)の変換方法は
http://www.geocities.jp/mirrorhenkan/snapshot/
にまとめられてますが、もちろんこの手順通りに行った結果で
エラーになってるんですよね。
とりあえず、アンカーの多いスレ、URLリンクの多いスレの
(snapshotでの)URLを教えていただけると何とかできるかもしれません。

449445:2007/04/12(木) 09:18:03
>>448殿、よろしくです。

ミラー変換機その9のものでもちゃんと変換されるものもありますし、IEでsnapshot開いて
該当スレをフィルタしたものをローカル保存したものであればちゃんと変換されますから
間違いは無いと思います。

ここの605
http://p2.chbox.jp/read.php?host=tmp6.2ch.net&amp;bbs=download&amp;key=1169907405&amp;ls=all

ここの2、3
http://p2.chbox.jp/read.php?url=http://tmp6.2ch.net/test/read.cgi/download/1170602478/all

「read.cgi7.00?」でうまくいかない
http://web.archive.org/web/20050312081450/http://fun.kz/test/read.cgi/tech/1084697545/

450名無しさん:2007/04/12(木) 20:03:44
『2ch DAT落ちスレ ミラー変換スクリプトについて考える掲示板』
の649、651のにすると上手く変換できたようです。ありがとうです。

fun.kzとアンカーのは変換できましたが、urlリンクの方はfatal error
で失敗します。
ここの2、3
http://p2.chbox.jp/read.php?url=http://tmp6.2ch.net/test/read.cgi/download/1170602478/all

451名無しさん:2007/04/12(木) 20:36:38
アンカーもurlリンクのも変換できました。
向こうの652殿ありがとうです。◆/vmukiyuzw殿も <(_ _)>

452451、445:2007/04/12(木) 21:19:02
『snapshotのスレをdat化する試みについて』
更新されたんですね。(仕事早いなぁ)

更新されたのをコピペして新たにdat化しました。
ありがとうです。

453名無しさん:2007/04/17(火) 11:05:38
いつも便利に使わせていただいております

subject.txtの作成機能なのですが、>>237の2の場合で
当方不精なのもので、フォルダに関係の無いdatファイルが散らばっていることが多々あります
そこでアップロードしたサイトのディレクトリにあるdatから
subject.txtをローカルに生成するようなことはできますでしょうか

subject.txt生成機能自体が、メインでないとは存じますが
よろしければお願いします

454 ◆/vmukiyuzw:2007/04/17(火) 20:23:19
>>453さん
うーむ、ちょっと難しい・・・
というのは、httpのプロトコルでは特定のサイトのディレクトリにある
ファイルの一覧を取得する方法が基本的にはないのです。
(http://なんたらかんたら/*.dat みたいにワイルドカードみたいなのは
使えないですよね)

で、ftpのプロトコルであればファイル一覧を取得できると思うのですが
htmltodatに付けようと思うとけっこうな改造になってしまう上、
労多くして実り少ないというか・・・

というわけで適当なftpツールでローカルにダウンロードして
subject.txt作成して頂く、というあたりで手をうってもらえないでしょうか。
(あ、「アップロードしたサイト」という文言から、ftpでのアクセスくらいは
許可されているはずと勝手に解釈して書いてますが、そうでなかったら
すいません)

455名無しさん:2007/04/18(水) 15:24:18
いつもお世話になっております。

このスレ
http://www.geocities.jp/log_matome/log/o7/1143077159.html

をdatにしたいのですが正規表現の一覧のどれを使っても変換できません。
「1行が長すぎるか正規表現が正しくないようです」と出てしまいます。
read.cgi7.00?ですと、変換は始めるのですがなかなか進まずそのうち固まってしまいます。
変換方法を教えていただけないでしょうか。

456名無しさん:2007/04/18(水) 16:33:52
>>455さん
dat2htmlの形式が微妙に変更されているようですね。
あわせてDAT2HTML2.6の正規表現を以下のように変更してみました。

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) :(.*?)<DD>(.*)<BR><BR>#mik

一応、以前の形式とも互換性を取れるようにしたつもりです。


>mukiyuさん
ほんの出来心で>>443を真似させて頂きました
ごめんなさい怒らないで下さい

457 ◆/vmukiyuzw:2007/04/18(水) 20:17:53
DAT2HTML0.32gというとこにデジャヴを感じたので、過去ログを探して見ると
>>151-152,>>173で出ている話題ですね。
おそらくDAT2HTML0.32限定の問題と思われますが
>>456さんの正規表現だとどちらでも対応できるのでこの方が良いですね。

> ほんの出来心で>>443を真似させて頂きました
真似されて困るほどオリジナリティのあるレスを書いてるとも思わないので
怒らないでくださいとか言われてもそもそも怒りようもないというか
逆に回答レス付けていただいて感謝するのみです。

458455:2007/04/19(木) 00:24:34
>>456-457
迅速な対応ありがとうございます。
無事変換できました。
本当にどうもありがとうございました。

>>457
以前に出ていたものだったのですね。すみませんでした。

459 ◆/vmukiyuzw:2007/04/19(木) 01:00:43
>>458
> 以前に出ていたものだったのですね。すみませんでした。
いえ、確かに既出の話ではありますが、2年近くも前の話でもありますし
そもそものんびりやってるスレなんで、私としては「過去ログ読め」とか
言う気は全くないのです。たまたま思い出したので書いただけで。

で、以前に出ていたもの(>>151-152)よりも>>456のもののほうが
汎用的で優れていると思うのでこちらのほうがお勧めだと思うのです。

460名無しさん:2007/04/19(木) 19:11:05
こっちに書いとくです

http://ex20.2ch.net/test/read.cgi/gline/1175735168/77で出た
http://2ch.pop.tc/log/06/09/28/1555/1095611913.htmlのdat化もさせるようにすると
下のようになるのではないかと思うです

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) ?:(.*?)<DD>(.*)<BR><BR>#mik

461 ◆/vmukiyuzw:2007/04/20(金) 00:58:25
>>460さん
この正規表現はDAT2HTMLの最新版(現時点では0.33hかな)に対応したもので
かつ以前の形式とも互換性が取れるようになっているものですね。
わざわざありがとうございます。

しかし変わった点は日付欄の前の全角コロンの前の半角スペースの有無だけですか。
htmltodatサイドから見るとこういう細かい変更を都度キャッチアップしていくのはとても
面倒なのですが、それはあくまでもこちら側の都合なのでどうしようもないですね。
なるたけ変更に強いような正規表現を書けるよう精進するしかないかな・・・

462名無しさん:2007/04/24(火) 04:22:38
すみません。2ch DAT落ちスレ ミラー変換機 ver.4
の、その23の変換はどのようにやれば良いのでしょうか?

463663 ◆fnwcOWFi56:2007/04/24(火) 08:21:38
>>462さん
デスクトップ2ch(http://2chsearch.info)のdat化は下記でどうでしょう

例:http://www.2chsearch.info/?s=old&amp;b=news4vip&amp;d=1174091695

受信オプション→HTTPヘッダ
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

正規表現
m#<div.+?>([0-9]+) :<span.+?><b> ?(.+?)</b></span>\[(.*?)\] 投稿日:(.+?)<br><div.+?> ?(.+?) ?</div><br></div><br>#mik

前処理
s#(<title>)デスクトップ2ch:.+?:(.+?</title>)#$1$2#ik

変換結果式
メール欄逆転


これで出来ると思いますが留意点が二つ。

1 User-AgentからPCか携帯かを判別しているようで、
 上のHTTPヘッダを付けないと携帯用ページ(40までしかない)を返してくるようです。
 なのでUser-Agentを忘れないようにして下さい。

2 上の例だとレス1が 「(コピペ略)」というリンクになっていますが
 dat化してもそのままです。
 これはどうしようもないので各自で何とかして下さい(リンク先等を見て)。

464 ◆/vmukiyuzw:2007/04/24(火) 22:29:16
>>463 いつもありがとうございます。

ちょっと気になったのは名前欄に関してですが、VIPやニュー速の
ランダム名無しであれば細字になるはずなので前後に</b>,<b>がつくはずですが
このサイトではそもそも削除されているようですね。
前処理や後処理で加工するのも面倒そうですし、まああきらめるしか
ない感じですかね。

465462:2007/04/25(水) 13:54:46
ありがとうです。>>463
「(コピペ略)」は切り貼りでもします。

しかし『デスクトップ2ch』って変ですね。1001で終わりのスレで
1040まで出てくるし。途中に「(コピペ略)」が挿入されてるのかな。

466 ◆/vmukiyuzw:2007/05/16(水) 22:45:38
バージョンアップしました。(0.8.12)
 ・変換オプションの前処理・後処理で不要な改行が含まれているとエラーになる
  不具合を修正。
 ・前処理・後処理欄等の使い勝手を少し修正。
  マウスでしか選択できなかったのをキーボード操作で選択できるようにした。

今回はまあ細かい修正のみです。

一つ目は、読み込んだ行が空行かどうか確認せずに行の一文字目を参照していたために
アクセス違反が起きてしまうという初歩的なバグなんですが、コンパイル時点で
ワーニングもなく参照できてしまう言語仕様もどうなんでしょうねえというか。
責任転嫁するなよと言われそうですが。

二つ目は、一覧が表示されて矢印キーで選択してリターンキーで確定、みたいな
動作を想定していたのですが、これも言語仕様上矢印キーの時点でイベントが
発生してしまって思ったような動作にならなかったので、まあ多少小細工して
なんとかできるようになりました。
キーボード派の方やスクリプトで操作したい方に利用していただければ。

あと、>>442-443に関連して「jbbs過去ログ」、
>>455-456,460-461に関連して「DAT2HTML0.26」
の正規表現をそれぞれ修正しています。(regexps.txt上)
必要な方は申し訳ないですが自力でマージしてください。

467663 ◆fnwcOWFi56:2007/08/15(水) 16:32:29
要望です。
「スレッドタイトルを取得しない」オプションを付けて頂けないでしょうか。

一度に全レス表示出来ないスレッドをdat化する際、
「1-10」「11-20」「21-30」等でそれぞれdat化して連結させたいのですが
dat化する時、「1-10」のもの以外にもスレタイが付いてしまいます。
それでは具合が悪いので、スレタイが付かないようにオプションで付いていたら
有り難いです。
具体的には下記とかで。

http://yy14.kakiko.com/test/read.cgi/mirror/1186175383/19-20n

以上、御検討の程 宜しくお願い致します。

468 ◆/vmukiyuzw:2007/08/16(木) 02:01:09
>>467
スレタイが付くというのはdatの行最後(5フィールド目)に付くという意味ですよね?
1-10以外(というか実際には1だけですけど)のものにスレタイがつくと何か問題あるのですか?
確かにdatの形式としては不正だとは思いますが、大抵の2chブラウザでは読み飛ばして
くれると思うので実害はないと思うのですが。

問題あるのであれば後処理で削るという手があると思います。
5番目の<>と\nの間を削ればいいんじゃないでしょうか。
というわけでオプションで機能追加しないといけない必要性がよくわからないです。

469 ◆/vmukiyuzw:2007/08/16(木) 02:26:04
>5番目の<>と\nの間を削ればいいんじゃないでしょうか。
4番目の間違いでした

470663 ◆fnwcOWFi56:2007/08/18(土) 18:21:44
>>468-469
その通りで実害はなかったので>>467の件取り下げさせて下さい。
失礼しました。


で、別件の要望です。(毎回すみません)


datへの一括変換時に、同名ファイルが存在した場合
現状では「上書き」「保存しない」の二つだけなのですが
「別名で保存」というような選択肢を加えて頂けないものでしょうか。

例えば「1234567890.dat」が存在していた場合は
「1234567890[0].dat」で保存、というように。

471663 ◆fnwcOWFi56:2007/08/18(土) 18:43:58
この機能が欲しい理由ですが
携帯用ページのスレッドをdat化したい時に
あったらラクだなと思ったもので。

http://www.geocities.jp/mirrorhenkan/2ch-i/

上記のページで書いたのですが
「1-10」「11-20」[21-30」等でしか表示出来ない携帯サーバの場合
それぞれのファイルをDLして
datに一括変換させて(ファイル名はそれぞれのレス1の日付からリネーム)
別個スクリプトでファイル名からソートしたテキストファイルを作成して
そのテキストファイルを元に連結すればdatになるのですが
秒数まで表示しないスレッドでなおかつ流れが速いものの場合
同名ファイルが幾つも出てきてしまうです。
例えば下記とか。

http://live.2ch.net/test/read.cgi/endless/1035922530/

これの2ch-imodeでのミラーはこちら

http://2ch-i.net/&amp;/live.2ch.net/endless/1035922530/

これなどはレス数が640なので64個のファイルをDLして変換結合するのですが
同名ファイルになってしまうものが4つ出てしまうので困ってしまうのです。
レス1の日付から生成したファイル名でソート結合していますので
オリジナルファイル名.datでやるのは却って大変です。

で、同名だった場合に「別名で保存」オプションがあったら
例えば
「1234567890.dat」と「1234567890[0].dat」の比較処理等が実に簡単になるのです。


以上のような理由がありますので
一括変換の際の「別名で保存」オプション(名前はどうでもいいのですが)
を、是非実装して頂けたら実に嬉しいです。

472 ◆/vmukiyuzw:2007/08/18(土) 22:15:34
まあ難しい話ではないですがこれもいまいち実装するほどのことかなとの
感が否めないです。
自分がやるなら、元ファイルをソートできるようにリネームするアプローチを取るかな?
せっかく「1-10」「11-20」と連番が付いているのですし
最終的にはスクリプトでソートする意図のようなので
そのまえにスクリプトで数字の桁数をそろえてしまえばいいのでは?

473 ◆/vmukiyuzw:2007/08/18(土) 22:50:20
ところで、2ch自体でもそうですが
「1-10」が「0001-0010」となっていてもアクセスできますよね。
(まあCGIがそう働いてくれてるだけのことですが)
であればローカルのファイルをリネームするよりURLの一覧のほうを
そう変えてしまうほうがより簡単かもしれませんね。

474名無しさん:2007/08/25(土) 15:09:43


475名無しさん:2007/09/16(日) 18:48:48
御返事遅れて申し訳ないです
>>471のページの方法で何とかなったと思うです。

さて、早速なのですが
下記3つのhtmlにマッチする正規表現を教えて頂けないでしょうか。

http://●.sarashi.com/htmltodat/1187190494.html
http://●.sarashi.com/htmltodat/1165245437.html
http://●.sarashi.com/htmltodat/1137198532.html


メール欄が日付(+ID)の右にあり、どうもマッチしないです。
下のような正規表現を考えてみたのですが

正規表現
m#<hr>([0-9]+):(.+?):(.+?)(?:\[(.+?)\])?<br>(.*?)(<hr>)#mki

前処理
s#(<title>)29-(.+?</title>)#$1$2#ik

変換結果式
$2<>$4<>$3<>$5<>

メール欄が無い場合にはマッチしないのです。
どこがよくないのでしょうか?

また、前処理でまだ色々やらなければいけないと思うのですが
とりあえずスレッドタイトルだけつけてみたら
どうも機能してないみたいです。
どこがまずいのか教えて頂けないでしょうか?

476名無しさん:2007/09/16(日) 18:49:58
>>475で出したURLですが
「●」を「mirror」に変えて読み出して下さい。

477 ◆/vmukiyuzw:2007/09/17(月) 00:11:24
変換結果式を入れなければ(順番はおかしいですが)正しく変換されるので
変換結果式の処理にプログラム側にバグがあるようです。
でもぱっと見た限りではどこがまずいのかわからない・・・
時間があるときに見てみますが、とりあえず変換結果式を使わず後処理で

s#(.*?)<>(.*?)<>(.*?)<>(.*?)\n#$2<>$3<>$1<>$4\n#igk

とかで対処できないでしょうか。
(やってることは変換結果式と同じはずなんですがなぜ結果が異なるのか
まだわかりません)

なお、NGワードは設定していないので伏字でないと書けない理由はわかりません。

478 ◆/vmukiyuzw:2007/09/17(月) 01:00:39
原因はわかりました。
変換結果式で変換するときも内部的にはsコマンドで変換しているのですが
$4はふつう日付ID欄で空白なことはないだろってことで(.*?)でなく(.+?)にしてました。
しかし$4にメール欄(空欄あり)がきてしまったのでマッチしなかったようです。
まあ次の機会にでも修正します。ちょっと副作用が怖いですが。

479名無しさん:2007/09/17(月) 19:39:31
>>477-478
ありがとうございます
対処法がわかれば何とかなりそうです。

とはいえ、やはり変換時のプレビュー表示が気になりますので
お時間のある時にツール内部の対処をして頂ければ嬉しいです。

480 ◆/vmukiyuzw:2007/09/17(月) 20:54:16
>>479
たいした修正でもないので片付けちゃいました。
バージョンアップです。(0.8.13)
 ・変換オプションの変換結果式が正しく作用しない不具合を修正。

今回の修正は>>477-478の不具合の対応のみです。

481名無しさん:2007/09/24(月) 15:23:13
23chのスレッドに貼られてるリンクが経由してしまいます

482 ◆/vmukiyuzw:2007/09/24(月) 23:42:51
>>481
すみません、私の能力では解読不能です。

・具体的なURL
・使用した正規表現
・発生する(困っている)事象
についてもう少し詳しく書いていただけると
何とかできる可能性もありますけど。

483名無しさん:2007/09/27(木) 02:29:47
お世話になります
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku1.html
これとdatにしたいのですが、どのようにすればいいのでしょうか?

484 ◆/vmukiyuzw:2007/09/27(木) 20:43:37
>>483さん
HTMLの形式を見るとかつてのmakimo.to(にくちゃんねる)のログを
HTML形式で保存したもののようですね。
このスレでの最新の情報としては>>362でどうでしょうか。

485名無しさん:2007/09/29(土) 02:01:33
ありがとうございます。上記のアドレスは問題なくdat化できました
が、下記のがうまくいきませんでした。
宜しくお願いいたします
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku2.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku3.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku4.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku5_1.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku5_2.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku6.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/keiyaku7.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/002.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/003.html
http://rosemarylove.hp.infoseek.co.jp/keiyaku/log/004.html

486 ◆/vmukiyuzw:2007/09/29(土) 19:15:08
>>485
そこのサイトのログはいろんなところから集められたもののようで
1種類の正規表現で全部変換するのは無理です。
とはいっても何種類かのパターンに分類できるようで。

・keiyaku2.html
・keiyaku3.html
・keiyaku4.html
・keiyaku5-2.html
・002.html
・003.html

m#<dt><a.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+)</b>(?:</a>|</b>).*?:(.*?)<dd>(.*)<br><br>#mi

・keiyaku5-1.html

m#<dt><a.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+)</b>(?:</a>|</font>).+?<span class="date"> ?(.*?)</span></div><dd>(.*)<br><br>#mi

・keiyaku6.html
・keiyaku7.html

m#<a href="menu.+?">([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+)</b>(?:</a>|</span>).+?<span class="date"> ?(.*?)</span></div><div class="mes">(.*)</div>#mi

・004.html

既存の正規表現「read.cgi7.00?」か「DAT2HTML0.26」

でそれぞれ変換できると思います。
# 各ログの元の出所が知りたいところではあります

487名無しさん:2007/09/30(日) 01:30:52
>>486
大変お世話になりました
ログの出元はわかりません、もうしわけないです。
ありがとうございました!

488名無しさん:2007/10/05(金) 18:02:19
このスレをdatで欲しいのですがどのような正規表現や加工を行えばよいのでしょうか?

http://mentai.2ch.net/whis/kako/994/994109037.html

ご教示よろしくお願いします

<各URL>
http://academy2.2ch.net/test/read.cgi/whis/994109037/
http://mentai.2ch.net/test/read.cgi/whis/994109037/

Jane Doe Style 2.7.5.0
htmltodat 0.8.13

489名無しさん:2007/10/05(金) 18:12:08
あれ?上のURLで開けてしまいました。
多分Janeを再起動したことより開けたのだと思います

という事で自己解決してしまったのですが、
時折スレを補完してるサイトで
ttp://uploader.fam.cx/img/u27240.jpg
が上部に付いてる形式でそのまま補完してるところがあります
そういった場合の整形方法を後学のため教えていただけますか?

490 ◆/vmukiyuzw:2007/10/05(金) 19:45:52
>>488-489さん

http://mentai.2ch.net/whis/kako/994/994109037.html

こういうURLで2ch側でhtml化されているものは基本的にはdatでも
保存されてますので大抵の2ch専用ブラウザでは読めるはずです。
(最後「html」を「dat.gz」にすればdatとして読める)
datが入手できずhtmltodatを使う必要がある場合は正規表現「sample」で。


> ttp://uploader.fam.cx/img/u27240.jpg
> が上部に付いてる形式でそのまま補完してるところがあります

datに変換する上では無視されますので事前整形等の必要は
ないはずですが。

491名無しさん:2007/10/05(金) 20:12:18
>>490
>>488については多分Janeのバグ(といっても全く実害の無いレベルのもの)だったのかと思います
色々試した後のJane再起動でいつの間にか直ってました
スレ汚しでホント恥ずかしいです

以前(確か2004〜05年頃だったかな?)、見かけたスレ補完庫の中に
いわゆるu27240.jpgの過去ログ.htmlで保存してて、htmltodatで変換出来ない物があり
今回恥の上塗りついでに質問しました(黄色いジャージを着た女性のバナーがあったので多分大人の時間の半角板だと思います)

もしもう一度そこに出会うことがあったなら、現在のverでかつ
◆/vmukiyuzwさんから教えていただいた『正規表現「sample」』で行ってみたいと思います

◆/vmukiyuzwさんありがとうございました

492 ◆/vmukiyuzw:2007/10/17(水) 23:26:38
htmltodatをバッチコマンド的に動作させる構想を持っていたのですが
以下の理由で見送りたいかなと思っています。

・かなり大きな修正になってしまうため自分のスキルが足りない
・もしできたところで、外部スクリプトの助けを借りずには動かすことは
 困難と思われる。今でさえ使うのは簡単ではないのにさらにハードルを
 あげると、使いこなせる人はほとんどいなくなると思う
・p2todatを使えばできることが多いと思うのでそっちを使ったほうが楽

てなとこでしょうか。


まあ自分は自分のできる範囲で地道にやっていこうと思います。

493663 ◆fnwcOWFi56:2007/10/21(日) 11:50:07
いつもお世話になっております。
早速ですが下記URL

http://www.23ch.info/test/read.cgi/morningcoffee/1192437916/

正規表現は「read.cgi.7.00?」で変換出来ますし
読んでみても問題なさそうな感じがしますが

変換直後に
「レス 60-372 の間が変換できていません」
と出ます。

実用上問題は無さそうな感じはしますが
何故このメッセージが出るのでしょうか?

494663 ◆fnwcOWFi56:2007/10/21(日) 12:24:59

自分の正規表現を変えてあったのが原因みたいでした

m#<DT.*>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) ?:(.*?)<DD>(.*)<BR><BR>#mik

上のものに変えていたのですが
元々のものに直してみたらエラーが出なくなったです。

>>493は取り消させて下さい。
失礼しました。

495 ◆/vmukiyuzw:2007/10/21(日) 21:28:45
>>493-494
m#<DT.*>
ここが最長一致になっている(*の後に?がない)のが原因だと思われます。
「レス 60-372 の間が変換できていません」のエラーは$1が連続した数値かどうかで判断しているのですが
ご指摘のスレの場合、たまたま371番目のレスが名前欄が60-で始まるIPアドレスになっており
最長一致のためここを$1であると解釈してしまったようです。
(プレビュー欄を見ても371番目のレス番が60になっている)

まあ難しい部分で仕方ないかなと思います。

496663 ◆fnwcOWFi56:2007/10/22(月) 18:56:34
なるほど、疑問氷解です。
ありがとうございました。

497<削除>:<削除>
<削除>

498663 ◆fnwcOWFi56:2007/11/18(日) 12:48:15
要望ばかりで何ですが
また要望です

透明あぼーんされたレスの箇所を
わかるような形でdat化出来るようにして頂く事は出来ないでしょうか。

例を出すと

http://www.geocities.jp/futasuke5/bbs/1061523335_part1

この↑スレッドですが「read.cgi.7.00?」でdat化できますが
設置された方が荒らしレスを削除してアップしているようです。(例えばレス54など)

ですので
もしレス番で欠けているものがあったら
例えばその箇所に

「あぼーん<>あぼーん<>あぼーん<>あぼーん<>」

等を置換(?)出来るようにして頂けたら有り難いです。
失礼しました。

499 ◆/vmukiyuzw:2007/11/18(日) 22:02:05
>>498
(「面倒だと思われるのでしたらいいです」ということですので)
多少面倒なんで、気が向いたらそのうちという事にさせてください。

「jbbs過去ログ」とか利用されている方は結構こういう経験されて
いるかなとも思うのでそちら方面からニーズが出てきたらまた考えます。

500名無しさん:2008/01/03(木) 12:04:49
年始から失礼します。今年もよろしくお願いします。
http://makimo.to:8000/i/d.cgi/livebase/2ch.net/live24/1187671540/
http://makimo.to:8000/i/d.cgi/livebase/2ch.net/live24/1187693406/

こいつをdatにするには、どうしたらいいでしょうか。

501 ◆/vmukiyuzw:2008/01/04(金) 00:23:31
>>500さん
これは私よりも 663 ◆fnwcOWFi56さんの領域ではないかと。
で、こちらで考えてくださっているのでご確認ください。
http://yy14.kakiko.com/test/read.cgi/mirror/1186175383/412-

502 ◆/vmukiyuzw:2008/01/04(金) 21:59:51
>>http://jbbs.livedoor.jp/bbs/read.cgi/computer/21256/1164941934/521

きっちり線引きなんてできないとは思いますが
少なくともミラー変換機で取得できる範囲に関しては
私より663さんのほうが優れてると思います。
今回の500の質問についても、調べようと思ったら
663さんの板ですでに回答出てましたし。
ご自分で見つけられたミラーなので、私より先に
正規表現等考えられてるケースが大半です。

本来の私の領域はというとやはりニッチなとこです。
もともと個人的なまとめサイトあたりをターゲットに
してましたから。

503名無しさん:2008/01/21(月) 04:19:56
初めまして。便利なツールでよく使わせて貰ってます。
早速ですが質問です。
http://fllaykunan.run.buttobi.net/kakolog/index.html
なるところがありまして、比較的新しいところ
http://fllaykunan.run.buttobi.net/kakolog/M003.html
については「read.cgi7.00?」で変換可能なのですが、
古めの
http://fllaykunan.run.buttobi.net/kakolog/1001.html
http://fllaykunan.run.buttobi.net/kakolog/1012.html
などが変換できません。
名前欄やメール欄、日付の形式などの書き方が違うせいだと思われますが、
このような場合の変換式はどうなるのでしょうか?
よろしくお願いします。

504 ◆/vmukiyuzw:2008/01/22(火) 01:25:27
>>503さん

正規表現:
m#<DT><A.+?>([0-9]+).+?<b>(.*)</b></FONT>\[(.*?)\] :(.*?)<DD> (.*)(:? <BR><BR>|<font)#mik
変換結果式:
$2<>$3<>$4<>$5<> (←「メール欄逆転」)

このHTMLはDAT2HTMLでJane風のスキン(メール欄が[ ]で見える)を被せて
変換したもののように思えます。
たぶんこのサイトでメール欄が名前欄の後に [sage] とかなってるスレには
ほぼ適用できるかもです(保証はしませんが)。

あと1001.htmlは最後の1レスがちょっと変ですがこれは元からそうなので
ご容赦ください。
(この1レスをそれなりに処理するためだけに正規表現の最後に|<fontを入れました)

505503:2008/01/22(火) 04:23:46
>>504
とても迅速な対応ありがとうございました。
おかげさまで無事変換できました。

506 ◆/vmukiyuzw:2008/01/27(日) 02:54:10
外部コマンド Part6
http://jane.s28.xrea.com/test/read.cgi/bbs/1200747725/103

htmltodatのレス1からdatファイル名を算出する機能がもしかしたら使えるかなと思って
試してみたのですが、出てきたのは微妙に違うスレ番号。
htmltodatのバグかも知れないと思い調べてみたのですが、よくよく見ると
レス1の投稿日の日時とJaneで表示されるsince(スレ立て日時)がぜんぜん違います。
他にもいくつかのスレを見てみましたがどれも違っている模様。

なぜこういう現象が起きるのかはわかりませんが、少なくとも「Jane総合掲示板」では、
レス1の投稿日時とdatのスレ番号は一致するとは限らない(というか基本的に
一致しないのか?)ようです。

まあ外部板ですしそういうことがあっても仕方ないのかもしれません。
ということでhtmltodatとしても外部板ではこの機能(レス1からdatファイル名を算出する機能)
は保証しません、と言うしかないです(うまくいく外部板もあるかもしれませんが)。

507名無しさん:2008/02/19(火) 04:47:53
初めまして、お世話になります
dat2Xhtmlからのdat化は可能でしょうか?
具体的には以下のスレッドをdat化したいのですが
正規表現がわかりません

http://www10.atwiki.jp/pv-3?cmd=upload&amp;act=open&amp;pageid=15&amp;file=1152788885.html

Jane Doe Style 2.76

508 ◆/vmukiyuzw:2008/02/19(火) 21:53:17
>>507さん
dat2XHTMLというのは寡聞にして知りませんでした。
Macもサポートしてるのかと思って見てみたらJavaで作られてるようですね。
いつ頃作られたのだろう?なかなか興味深い。

ともあれ、HTMLの形式としては比較的シンプルなように見えたのでやってみたのですが
レス番ポップアップ機能を使えるようにするためにレス本文中に若干余計なものが入っており
それを取り除くのに若干前処理が必要となりました。

正規表現:
m#<div>([0-9]+)<a id.+?<span class="name">(.*?)</span>(?:<span class="mail"> ?&lt;(.*?)&gt; ?</span>)?<span class="time"> : ?(.*?)</span></div><div class="res">(.*) </div><p />#mik
※↑ブラウザの表示の関係で化けてしまうので2箇所の全角アンパサント(&)は半角に変えてください
前処理:
s#<a href="\#res.*?"resClear\(\)">##igk
変換結果式:
$2<>$3<>$4<>$5<> (←メール欄逆転)

509507:2008/02/20(水) 02:24:06
無事dat変換に成功しJaneで認識できました。
ありがとうございました!

510名無しさん:2008/03/08(土) 17:15:38
はじめまして。
変換方法read.cgi7.00?でdatファイルを作りました。
変換方法は、そのスレで聞いて選びました。
ギコナビVersion バタ56(1.56.2.724)<IE>6.0.2800.1106
のログフォルダにそのdatファイルを入れると、
取得したログは1001で、1001まで読むことが出来るのですが、
なぜかギコナビのカウント数が違う数字で出ます。
中にはカウント0の物もあります。もちろん1001までログはあるので読めるのですが、
読めるのだから問題なければいいのですが、そのうちカウント数のログまでしか読めなくなる……
なんて事にはならないか心配です。

もしかしたら、>>85さんと症状が似てるのかもしれませんが、
再起動しても変わりませんでした。

だれか、教えてください。

511 ◆/vmukiyuzw:2008/03/08(土) 23:32:08
>>510さん
もしdat変換が正しくできているのであればこれはhtmltodatの問題ではなく
ギコナビ側の問題になると思うのですが・・・

私自身ギコナビを常用していないのではっきりしたことはいえないのですが
カウント数が違うとかいうのは既得のログがありそれに上書きしたような
状況じゃないんでしょうか。であれば.idxファイルとの不整合が出ていることが
考えられます。(どうすれば整合性が戻せるのかはわかりませんが)

> そのうちカウント数のログまでしか読めなくなる……
そのようなことは考えにくいので実害がなければ気にしないのが一番ですかね。
もしどうしても気になるならギコナビのスレで聞かれたほうがいいかもしれません。

512510:2008/03/09(日) 14:05:57
>>511さんありがとうございます。
おっしゃるとおり既得のログがあって、先に削除してから貼り付けたのですが
なぜかもともと持ってたカウント数のままでした。
ログが消えることが無いようでしたら、このままでいいかなと思ってます。
ありがとうございました。

513名無しさん:2008/03/14(金) 03:26:06
これらのスレをdatで欲しいのですがどのような正規表現や加工を行えばよいのでしょうか?

http://x96.s35.xrea.com/log34/1.html
http://x96.s35.xrea.com/log23/1.html

ご教示よろしくお願いします

Jane Doe Style 2.7.6.0
htmltodat 0.8.13

514 ◆/vmukiyuzw:2008/03/14(金) 20:07:11
>>513さん

正規表現:
m#<dt><a name.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)</dt><dd> (.*?) <br><br></dd>#mik

しかしこれはどうやってHTML化したものか、微妙に独特な代物で出所が気になります。
結果吐かれるHTML自体はシンプルなんで正規表現を書くのは簡単でしたが。

515名無しさん:2008/03/15(土) 01:38:21
>>514
ありがとうございました。
無事変換できました。

516名無しさん:2008/03/19(水) 15:51:39
2chではないのですが、このタイプの変換はできますでしょうか?
ttp://www.alfheim.jp/~narikiri/narikiri/TheSun/kako/1120/1120999050.html

ヨロシクお願いします。

517 ◆/vmukiyuzw:2008/03/19(水) 23:02:15
>>516さん
なりきり太陽板の過去ログですか。
HTMLの形式自体はシンプルなのですがこれまた微妙にタグの位置とかが他と異なり
既存の正規表現を使い回すことはできませんでした。

m#<dt>([0-9]+).+?<b>(?:<a href="mailto:(.+?) ">)?(.+?) (?:</b></font>|</a></b>) 投稿日:(.*?)<dd> (.*?) </dt>#mik

518名無しさん:2008/03/19(水) 23:28:37
>>517
ありがとうございました。
無事変換できました。

519名無しさん:2008/03/20(木) 14:44:28
何度やってもエラーを吐かれてしまうのですが、
これを変換するにはどうしたらよいのでしょう?
よろしくお願いします。
http://rejec.net/~boc/log/1086253475.html

520 ◆/vmukiyuzw:2008/03/21(金) 01:33:22
>>519さん
正規表現:
m#<dt>([0-9]+).+?<b>(.+?)</b></font>(?:\[(.*?)\]) :(.*?)<dd>(.*)<br><br>#mik
変換結果式:
$2<>$3<>$4<>$5<> (←メール欄逆転)

これはDAT2HTMLにスキンをかぶせてHTML化したものかな?あんま自信はないですが。

しかし見た目は変わらないのに微妙に形式が異なるHTMLがいろいろあってなんだかなあと
ちょっと思ってしまいます。まあもともとそういうのに対応するために作ったソフトなんで
仕方ないかなというところはあるのですが。

あと、できればage書き込みはやめていただきたいです(板TOPにくると業者さんの無差別
書き込みに合う可能性が高いようなので)。ageなくとも専ブラでチェックしてますんで。

521名無しさん:2008/03/22(土) 17:35:44
>>520
ageてしまい申し訳ございませんでした。
無事変換できました。ありがとうございます。

こちらもお願いできませんでしょうか。
http://rejec.net/~boc/log/1084808536.html
どうやらmailtoに全角文字が入ってるところから表示がおかしくなっているようなのですが・・・。

522 ◆/vmukiyuzw:2008/03/23(日) 00:19:10
>>521さん
正規表現「DAT2HTML0.26」に少し問題がありました。
確かに仰るとおりmailtoに全角文字が入ってるとこがおかしくなるので
まさか正規表現エンジンのバグかと思い焦ったのですが・・・
よく見ると、DAT2HTMLの仕様なのか、mailto欄の長さにより日付欄の前の改行位置が
まちまちになり、その影響で半角スペースが余分に付加されてマッチしなくなってたようです。

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A href="mailto:(.+?)">)?<B>(.*?)</B>(?:</A>|</FONT>) *?:(.*?)<DD>(.*)<BR><BR>#mik

「DAT2HTML0.26」から変えた部分は、日付欄にマッチさせる「:(.*?)<DD>」の前の
半角スペースに「*?」を足したとこです。
(今までの「DAT2HTML0.26」とも互換性はあると思います)

あと、ageの件はスレに強制sageというものが設定できることがわかり早速設定したので
今後は気にしなくていいです。
# て早速業者さん来てるし(笑

523名無しさん:2008/03/23(日) 02:15:28
>>522
全角が問題ではなかったんですね。
どうもありがとうございました。

524 ◆/vmukiyuzw:2008/03/23(日) 02:43:25
あー、勘違いだったかも
DAT2HTMLの仕様ではなく、DAT2HTMLでUPされたHTMLを
(多分)IEでダウンロードして、それを再度アップロードしたもののようです。
余分な半角スペースはIEダウンロードの時点で付加されたものかと。
まったく(何度も書いてますが)いらんことをしてくれるものですなぁ・・・。

525名無しさん:2008/03/31(月) 21:45:45
ttp://yb9-c25.hp.infoseek.co.jp/log/tamura6.html
ttp://yb9-c25.hp.infoseek.co.jp/log/tamura3.html
ttp://yb9-c25.hp.infoseek.co.jp/log/tamura4.html

上記スレを変換するにはどうしたらよいのでしょう?
よろしくお願いします。

526 ◆/vmukiyuzw:2008/04/01(火) 00:33:17
>>525さん

m#<DT>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*?)</b>(?:</a>)?</font>.*?投稿日: ?(.*?)<DD>(.*)<BR><BR>#mik

これまたどうやってHTML化したものか独特な代物です。
形式自体はシンプルなので他の正規表現が流用できないかと思ったのですが
微妙に形式が合わず、結局別の正規表現を書いたほうが早かったです。

あと、これらのHTMLにはスレタイの情報がどこにもありません。
自力でdatに書き足すか、情報ファイルに書き足すかしてください。
(datに書き足すなら、スレ一行目の一番最後に書き足す)

527名無しさん:2008/04/01(火) 00:40:34
>>526
自分でも正規表現をかけると良いのですが、
どうも切り出し方がよくわからずにたよってしまいます。

ありがとうございました。

528名無しさん:2008/04/14(月) 21:16:59
http://www6.atpages.jp/puyopuyokaku/%83%8d%83O/%82Ղ%e6%82Ղ%e6%82Ƃ%a9%95`%82%ad12.html
このようなスレでは無理でしょうか?
よろしくお願いします。

Jane Doe Style 2.7.7.0
htmltodat 0.8.13

529名無しさん:2008/04/14(月) 21:25:04
http://www6.atpages.jp/puyopuyokaku/%83%8d%83O/%82?%e6%82?%e6%82?%a9%95`%82%ad12.html

こっちでした。すみません

530名無しさん:2008/04/14(月) 21:30:45
上手く表示されないようです。
何度もすみません。

http://www9.atwiki.jp/puyopuyokaku/pages/38.html

ここにある過去ログです。
よろしくお願いします。

531 ◆/vmukiyuzw:2008/04/15(火) 23:59:19
>>530さん
なぜか11スレ目だけ形式が違いますね。あとはこんなんでいけるかと

m#<a href="menu:.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+)</b>(?:</a>|</span>).*?<span class="date">(.*?)</span></div><div class="mes">(.*?)</div>#mik

11スレ目はなんかちょっと面倒そうなので考えます。

532 ◆/vmukiyuzw:2008/04/16(水) 23:11:53
11スレ目のみ
正規表現:
m#<dt.*?><a.*?><font.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*)</b>(?:</font>|</a>) ?:(.*?)<dd id.*?>(.*?)<br><br>(<a *?id.*?>|</dd>)#mi

後処理:
s#<A onmouseover.+>##gik

本文中にレスアンカーがあると<A onmouseover〜が入ってくるので
これを取り除くのに後処理が必要になりました。
(というか前処理でもいいはずなんですがうまくいかなくて手こずりました。
なぜうまくいかないのかわかりません・・・)

いずれにせよ、<!-- saved from〜>タグが2つもあったりして流浪の末に
できたHTMLなんだろうと。出所を解明する気にもなれないです。

533 ◆/vmukiyuzw:2008/04/16(水) 23:49:41
あー後処理間違えた〜

s#<A onmouseover.+?>##gik

ボケてました。失礼。

534 ◆/vmukiyuzw:2008/04/17(木) 02:30:11
前処理でも対処できる方法を見つけました

s#<A onmouseover(.|\n)+?>##gik

しかしなぜ.(ドット)は改行(\n)にマッチしてくれないのか
オプションのmを使ってもうまくいかないようだし

535 ◆/vmukiyuzw:2008/04/17(木) 02:56:11
さらに修正
s#<A( |\n)*?onmouseover(.|\n)+?>##gik

あと、<img 〜>(画像)があるんだけどどうしよう。
ブラウザによって扱いが違うだろうしとりあえず
放置しますか。

536 ◆/vmukiyuzw:2008/04/17(木) 23:12:23
>>530さんへのレスがなんかごちゃごちゃしてきたのでまとめると

・11スレ目以外は>>531で多分OK

・11スレ目のみ

前処理:
s#<A( |\n)*?onmouseover(.|\n)+?>##gik

正規表現:
m#<dt.*?><a.*?><font.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*)</b>(?:</font>|</a>) ?:(.*?)<dd id.*?>(.*?)<br><br>(<a *?id.*?>|</dd>)#mi

但し11スレ目には<img 〜>タグが存在するため使用する専ブラによっては
表示が変になる可能性あり

てなところで。

537名無しさん:2008/04/25(金) 03:13:39
ttp://www.42ch.net/UploaderSmall/source/1209059921.dat

上記のような形式のスレを変換させるにはどうすれば良いでしょうか?
試行錯誤してみたものの[]内が空白になってしまったりと上手くいきませんでしたorz

538 ◆/vmukiyuzw:2008/04/25(金) 20:05:09
>>537さん

正規表現:
m#<DT><A.+?>([0-9]+).+?<b>(.*)</b></FONT>\[(.*?)\].*?:(.*?)<DD> (.*)(:? <BR><BR>|<font)#mik
変換結果式:
$2<>$3<>$4<>$5<> (←「メール欄逆転」)

>>503-504の形式と似ているなあと思ったらやっぱりDAT2HTMLで変換したものでした。
>>504で書いた正規表現をちょっと修正して、かつ互換性が取れるようにしてみました。
これで同様のスキン適用のHTMLには使えるかも。

# スキン適用で変換したHTMLは、どのスキンを使用しているのか
# 例えばmetaタグとかで表記してくれていると個人的にはうれしいですな

539537:2008/04/26(土) 01:16:22
>>538
素早い対応ありがとうございました。
あと537のは変換書式を少し弄ってJane風にしているだけでスキンは適用していないそうです。

540名無しさん:2008/04/26(土) 21:54:49
>>536
わざわざ、ありがとうございます!助かりました!

541 ◆/vmukiyuzw:2008/04/26(土) 21:57:59
DAT2HTMLの最新版(0.35a)を落としてみましたが
変換書式の設定で
・メールアドレスを直接表示する(OpenJane方式)
・日付欄に「投稿日」の文字列を付加する
等のオプションがいつのまにか追加されてるようで
このへんを弄くると>>503とか>>537のようなHTMLになるようですね。

いずれにせよ大抵は>>538で対応可と思います。
(「メール欄逆転」が必須なのが多少うっとうしいですが)
イレギュラーなものが出てきたらまたその都度考えるしかないので・・・

542名無しさん:2008/05/01(木) 17:44:15
最新のregexps.txtまとめって無いのでしょうか?
このスレ読んでてもごちゃごちゃになってよくわかりません

543 ◆/vmukiyuzw:2008/05/01(木) 20:05:24
>>542さん
基本的に、regexps.txtには自分で必要なものを入れて使ってくださいというスタンスなので
おっしゃるような「まとめ」的なものは存在しないと思ってください。
そもそもデフォルトで添付してるものも「単なるサンプルです」とreadmeに明記してます。

regexps.txt自体は単なるデータなのでその内容は著作物の範囲外だという考えです。
実際私以外の方がこのスレに書き込んでくださっているケースがありますし。

544 ◆/vmukiyuzw:2008/06/05(木) 22:03:28
バージョンアップしました。(0.8.14)
 ・変換オプションに「透明あぼーんを補う」を追加。
 ・変換オプション「アンカー削除」で<a href〜>形式のタグしか削除してなかった
  のを<a 〜>全般を削除するよう修正。

「透明あぼーんを補う」は、dat変換中にレス番号の飛びを検出したときに
変換結果のdatに「透明あぼーんかも」という行を自動的に必要な数だけ生成します。
ただ、レス番号の飛びの検出は正規表現が正しくない場合にも起こり得るので
警告ウィンドウは以前同様出すようにしています。本当に透明あぼーんなのか
どうかはHTMLソースと正規表現を見比べて確認してください。
また、プレビュー欄には自動生成された行を表示するのはあまり意味がないと思った
ので表示していません。

「アンカー削除」については<a href〜>以外の形式もあるとのご指摘をうけ修正。
ただ、この処理はdat変換後に行っているので、前処理でaタグ関連の加工を行って
いる場合、完全にその代替にはならない場合がありますのでご容赦ください。

545名無しさん:2008/06/18(水) 03:47:52
http://www.geocities.jp/f4cq4/erg_story/log/1128496422.html
http://www.geocities.jp/f4cq4/erg_story/log/1141041553.html
http://www.geocities.jp/f4cq4/erg_story/log/1161458665.html
http://www.geocities.jp/f4cq4/erg_story/log/1168569791.html
http://www.geocities.jp/f4cq4/erg_story/log/1186203273.html

これらの正規表現がよくわかりません
よろしくお願いします

546名無しさん:2008/06/18(水) 16:18:27
ttp://ninjax.dreamhosters.com/hgame_hgame2/index.html
上記のサイトのログを変換するのに「なんだっけ…」が
一番まともに変換できたので、これを元に試行錯誤してみました
↓これで一応変換できたのですが、sageてないレスがうまく変換できません
m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B>(?:</B>)?(.*?)(?:</A>)?</B>.{6}(.*?)<DD>(.*)<BR><BR>#mi
できれば理屈も教えて頂ければと思います
よろしくお願い致します

547 ◆/vmukiyuzw:2008/06/18(水) 21:57:45
>>545さん
1番目と4番目にはhtmlの形式に見覚えがありました。
>>531と同じ正規表現でいけるかと。

2,3,5番目は見たことない形式でした。
ほぼ同じ形式なのですが細かいとこが微妙に異なり
一発のパターンでマッチさせるのにやや手こずりました。

m#<dt><INDEX/>(?:<a .*?>)?([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+)</b>(?:</a>|</font>)?</font>.*?:(?:<DATEONLY/>(?:<a .*?">)?<COLORINGID.+?>)?(.*?)(?:</a>)?</dt><dd>(.*?)<br><br></dd>#mik

なお2番目と3番目には「投稿日」の情報がそもそも含まれてませんので
dat変換しても表示させることは出来ません。

548 ◆/vmukiyuzw:2008/06/18(水) 23:26:56
>>546さん
まず、投稿日欄の前の.{6}が問題です。
sage(というかメール欄の有無)がある場合とない場合では、名前欄の後の</b>の後が
</a>になるか</font>になるか変わって来ますので、ここの文字数を固定するとまずいです。
推奨としては(?:</a>|</font>):
(</a>か</font>のどちらかがあってその後に:(全角セミコロン)がくるものにマッチ)
がよいのではないかと。

あと、名前欄の部分の<B>(?:</B>)? ですが、トリップありの名前にマッチさせようというのだと思いますが
トリップの前の</b>が消えてしまうと本当のトリップかどうか表示上わからなくなり困るのではと思います。
また、必ずしも名前欄の先頭からトリップが書かれるとは限りませんし。先にコテハンを書くような人もいるでしょう。
(この場合<b>コテハン</b>トリップ<b><b>みたいになると思います)
で、名前欄へのマッチパターンの推奨としてはシンプルに<b>(.*)</b> ←最長一致にする(*に?をつけない)のがミソ
# 実は単純に最長一致ではまずいケースもあるのですが説明長くなってしまうので省略

とこの辺まで書いてきてふと試してみると、あれ?既存の「DAT2HTML0.26」で変換できるような・・・
いやご自分で試行錯誤されたことは決して無駄にはならないと思いますが。

549名無しさん:2008/06/19(木) 00:05:04
>>547
ありがとうございました
残りはp2datやo2onなどを使用して補完したいと思います

550546:2008/06/19(木) 09:45:42
>>548
た、確かに「DAT2HTML0.26」で変換できました
て言うか「jbbs過去ログ」でもできるみたいです
確か、上から順番にやって「read.cgi7.00?」で「応答なし」になって強制終了
次に下からやって「DAT2HTML0.26その2」までやって「1行が長すぎるか...」になったので
あきらめてしまっていたようです
大変申し訳ありませんでした

551名無しさん:2008/06/20(金) 06:05:23
暇つぶし2ch(mobile.seisyun.net)の正規表現よろしくお願いします
したらば(www)m#<DT>(?:<a .+?>)?([0-9]+).+?(?:mailto:(.+?)>)?<B>(.*?(?:</b><font .*?)?</b>).*? (.*?)<BR>.+?<DD>(.*)<br><br>#mi
はそれっぽいのですが不完全でした

http://mobile.seisyun.net/cgi/read.cgi/namidame/namidame_news_1202561507

552663 ◆fnwcOWFi56:2008/06/20(金) 06:48:04
>>551さん
http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/756n
でどうでしょうか。

ただ、今試してみると
名前の前に半角スペースが残っているみたいなので
気になる場合は正規表現を

m#<dt.*?>([0-9]+).+?<b> ?(.+?)</b>(?:</font>|</a>)(?: <small>mailto:(.+?)</small>)? <small>\[(.*?)\]</small><dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi k

に変えてみてもいいかもです

553名無しさん:2008/06/20(金) 07:18:40
上手くいきました!ありがとうございます

今後、困ってる人が検索・抽出で見つけられる様にこちらにまとめますと
暇つぶし2ch(http://mobile.seisyun.net/)のdat化はこうですね

正規表現
m#<dt.*?>([0-9]+).+?<b> ?(.+?)</b>(?:</font>|</a>)(?: <small>mailto:(.+?)</small>)? <small>\[(.*?)\]</small><dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi k
変換結果式
メール欄逆転

554 ◆/vmukiyuzw:2008/06/20(金) 20:33:08
# 皆様早起きですねえ

ところで、>>548

> で、名前欄へのマッチパターンの推奨としてはシンプルに<b>(.*)</b> ←最長一致にする(*に?をつけない)のがミソ

とか書いちゃったんですが、実際には自分が書いてる正規表現では
最短一致を使ってました。実はあまり意識してなかったんですが。

なんで最短一致でもうまくいくか考えてみると。
例えば「DAT2HTML0.26」だと、マッチさせるhtml側のパターンは

<b>名前</b></a>

もしくは

<b>名前</b></font>

のように、名前欄の後の</b>の後にさらにマッチさせるべき要素が存在します。
で、これに対する正規表現としては

<b>.*?</b>(?:</a>|</font>)

のようにすれば、たとえトリップ等で名前欄の途中に他の</b>があったとしても、
後続に</a>や</font>がないので読み飛ばされて、正しく意図した</b>にマッチしてくれる
ということのようです。

また、
・改行コードなしのベターっとしたhtmlの場合、最長一致だと破綻する
 (最近あまり見かけないですが、一時期のread.cgiがこういうhtmlを吐いていたんです。
 「read.cgi7.00?」の本文欄へのマッチが最短一致になっているのはそのためです)
・最長最短どちらでも適用可能な場合、処理コストは最短一致のほうが少ないはず
という考えもあります。

というわけで>>548での上記発言(最長一致を推奨)は撤回させてください。

555 ◆/vmukiyuzw:2008/06/20(金) 23:16:45
>>554
ちょっと間違えた

<b>.*?</b>(?:</a>|</font>)

<b>(.*?)</b>(?:</a>|</font>)

名前欄へのマッチの話をしてるんで普通はこうですわな

556名無しさん:2008/07/10(木) 14:16:13
すみません
Jane総合掲示板の外部コマンド Part7 (ttp://jane.s28.xrea.com/test/read.cgi/bbs/1212574864/)がNGワード設定のため書き込めず
またこちらのhtmltodatサポートスレッドに23ch.info用と明記されたレスが無いようなのでちょっと1レスお借りします

htmltodat 0.8.14の23ch.info変換
m#<dt.*?>([0-9]+).+?(?:"m☆ilto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi

557名無しさん:2008/07/10(木) 22:30:06
紙copiというスクラップソフトで2CHをスクラップ保存してhtml化したものをdatにしたいのですが
出来ますでしょうか?よろしくお願いします!
ファイルはここにあります
ttp://monkeyuploader.dyndns.org/Offering/mnkyup947.zip

558 ◆/vmukiyuzw:2008/07/11(金) 00:22:24
>>557
見たところレス番509の1レスだけのようですね。
私がこういうのもなんだかという気もしますが手で変換したほうが早いのではないか
と思います。

508までのdatをお持ちで、続きが欲しいということなら、どのみちエディタで
貼り合わせるしかないですし、このレスだけが欲しいということなら
そのレスがレス番1となるスレを作ることになります。

あと、正直言うと、1レスだけの変換だと、レス間を区切るセパレータとなるものが
何かわからないので、マッチする汎用的なパターンを読み取れないというのもあります。


ということで、願わくば自力で頑張って頂きたく。datの形式は

名前欄<>メール欄<>日時・ID欄<>本文<>スレタイ(※スレタイは基本的にはレス番1のみ)

正規表現を覚えるよりは簡単だと思いますが、エディタも使えないということなら
再度ご相談ください。

559名無しさん:2008/07/11(金) 00:44:43
>>558
レスありがとうございます
これはほんの一例です。紙copiで作った100レスぐらいのスクラップもたくさんあるので
同じ設定で全てdat変換できると思い、少な目のスクラップをupしたという経緯です。

エディタは使ったことがないです。メモ帳でも出来るのであれば試してみようと思いますが
どの様に何をすればいいのかもわかりません。
お願いできますでしょうか?
もしくはやり方を教えていただけないでしょうか?

560 ◆/vmukiyuzw:2008/07/11(金) 00:56:40
>>559
100レスもあるとメモ帳では手に負えないですね。

サンプルとして出していただけるのなら、レス数が多いほうが有難いのです。
(レスのバリエーションも多く含まれますし)

またupしていただければ調べます。

561名無しさん:2008/07/11(金) 21:13:12
ttp://monkeyuploader.dyndns.org/Offering/mnkyup955.zip
ちょっと順番が逆だったりごちゃ混ぜだったりするのもありました・・・

なんとか正規表現という技術でなんとかならないもででしょうか?

562 ◆/vmukiyuzw:2008/07/12(土) 22:28:34
>>561
うーむ、難しいですね〜

というのは、datファイルというのはその構造上、各レスに「レス番」という項目が
ついているわけではないので、改行で何レス目かを判別しているわけです。
(これをhtmltodat側から見ると、datに変換する時点でレス番に関する情報は失われる、
という意味でもあります)
これが普通のhtmlならちゃんとレス番順に並んでいるので問題になることはないのですが、
レス1から始まってなかったり、レス番が飛んでたり、ましてやレス番が逆転してるような
htmlをdatに変換しても、2ch専用ブラウザで見たときに正しいレス番で読むことは
基本的には難しいわけです。
htmltodatではレス番が飛んでるケースには一応対応しましたが、レス番逆転には
対応していません。(というかこれはどうしようもない気が・・・)

というわけで、正規表現以前の問題で、upして頂いたこれらのhtmlを(専ブラで一応読める
まっとうなdatという意味で)datに変換するのはhtmltodatの機能としては無理です。



・・・と突き放してしまうのもあんまりなので・・・
あくまで「レス番にはこだわらなくてもいい」という条件の上で書いてみます。
(これがないと専ブラで読むメリットが相当なくなる気がしますが・・・)

サンプルで上げて頂いたものの中でもバリエーションがあって一発の正規表現でとは
いきませんでした。よって以下のものでも通用しないケースもあると思います。


・とわ ◆MeBa4xL9X.〜
正規表現:
m#<STRONG>([0-9]+).+?:(.*?)\[(.*?)\].*?:(.+?)</STRONG>(.*?)(<STRONG>|<BR>TITLE:)#mik
変換結果式:
$2<>$3<>$4<>$5<> (←メール欄逆転)


・抜粋、輸送関係
正規表現:
m#<BR>(?:</P>)?([0-9]+) 名前(?::|:)(.*?)\[(.*?)\] 投稿日(?::|:)(.+?)<BR>(.*?)(<BR>([0-9]+) 名前(?::|:)|<BR>TITLE:)#mik
変換結果式:上と同じ(メール欄逆転)

563名無しさん:2008/07/13(日) 00:51:25
>>562
ありがとうございました!!
お手数お掛けしました。

dat作成してみたのですが、番号が1からの連番になってしまうのですね。
やはりどうしようもないみたいですね。

でも、いろいろと対策を考えていただいてありがとうございました!

564名無しさん:2008/07/14(月) 02:15:03
ふたば(双葉)☆ちゃんねる
http://www.2chan.net/
の文字板の正規表現がわからないので教えて頂けませんか?
tmp1〜tmp3が最もそれらしい動作をしたのですがエラーでした
スレ内検索はしたのですがもし過去レスに同内容の質問がありましたら申し訳ありません

ttp://www.2chan.net/test/read.cgi?bbs=ascii&key=1187933909

565 ◆/vmukiyuzw:2008/07/14(月) 23:16:26
>>564さん
ほとんど「read.cgi7.00?」と形式が同じでした。

m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?) ?">)?<b>(.+?) ?</b>(?:</font>|</a>).*?:(.*?)<dd> ?(.*?)<br><br>(<dt.*?>|</dl>|<table)#mik

投稿日欄の前に「投稿日:」という文字列がついているので
.*?:(.*?)<dd>としてマッチさせるようにしました。
(他の正規表現ではこれにマッチさせるために直接「投稿日:」とか書いちゃってる
ものもあるのですが、多分こちらのほうが汎用的なんで)

あと最後1レスにマッチさせるために「|<table」を最後に足したのと
細かいとこですが名前欄やメール欄の不要な半角スペースを削除した
くらいです。多分これまでの「read.cgi7.00?」とも互換性は保たれてると思います。

566 ◆/vmukiyuzw:2008/07/15(火) 00:14:22
というかそもそもこれは2ch互換板なのでは?
過去ログ化されたものはわかりませんが、現役のスレなら
Janeとかなら外部板に登録すればそのまま読めるような気がします。

>>564のスレは現役スレには見当たりませんし過去ログ倉庫にも
ないようですしいったい何者?詳しい方教えてください。

567名無しさん:2008/07/15(火) 03:35:28
>>565-566
依頼者です。
ほとんど「read.cgi7.00?」だったそうですが、従来の物では全て×だったので助かりました。
ありがとうございます。

詳しい経緯は全くわからないのですが、いつものパターンだと、
1.スレ立て爆撃を喰らって強制dat落ち→dat落ち処理が追いついていない。
2.スレ立て爆撃を喰らって強制dat落ち→復旧処理が追いついていない。
3.運営さんが規約違反と判断した…が中途半端で放置。
4.鯖の不調(よくある)→人気の無い文字板に労力を割く時間は無い(よくある)→放置(よくある)。
(順不同)
あたりだと思います。
すみませんがここを読まれてるふたばに詳しい方、フォローお願いします。

568 ◆/vmukiyuzw:2008/07/16(水) 22:51:21
>>567
663 ◆fnwcOWFi56さんがご自分の板で補足してくださってます。

http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/34

> http://www.2chan.net/ascii/dat/1187933909.dat

でdatのまま取得できるようですね。
確かに、read.cgiで読んでいる以上、どっかにdatは存在していて
でも直接は読めない状況なのかなと思ってしまったのですが
直接読めるようですね。

ということでふたばでは>>564のようなケースではhtmltodatを介するよりも
URLを上のように変換してdatを取得したほうが楽かと思われます。

569663 ◆fnwcOWFi56:2008/08/01(金) 20:17:50
再び要望です。
長々と書いてしまいますごめんなさい


クラシックメニュー(http://c.2ch.net/)のスレッドは
dat落ちしても暫くは読めるようなので、これをdat化したいと思います。
で、色々考えてみました。

URL例
http://c.2ch.net/test/-.lcE-E0/gline/1165245437/1-
http://mirror.sarashi.com/htmltodat/1165245437.html

正規表現
m#<hr>(?:<form.+?>)?([0-9]+):(.+?) ((?:\d{2,4}|\d\d/\d\d).+?) +(?:\[(.+?)\] )?<br>(.+?) +(<hr>)#mik

前処理
s#(<hr>)#\n$1#igk
s#<a href="/test.+?/(.+?)\+(.+?)">2chカコ</a>#http://$1/test/read.cgi/$2#igk
s#<a href="/test.+?/(.+?)/(.+?)">2chスレ</a>#http://$server/test/read.cgi/$1/test/read.cgi/$2#igk
s#<a href=\d+(?:-\d+)?>&gt;>(\d+(?:-\d+)?)</a>#&gt;&gt;$1#igk
s#<form.+?>##ik
s#(<hr>\d+:)((?:\d\d\d\d/)?\d\d/\d\d\(.\))#$1$board $2#igk

$server
society6.2ch.net
$board
水先案名無い人

変換結果式
$2<>$4<>$3<>$5<>

後処理
s#((?:^|\n))(.*?)◆(.+?)<>#$1$2</b>◆$3<b><>#igk
s#((?:^|\n).+?<>.*?<>[^<>]+? )([^ ]{8,9}●?<>)#$1ID:$2#igk
s#((?:^|\n).+?<>.*?<>[^<>]+? )(\?\?\?.?<>)#$1ID:$2#igk



いちおうこれでdat化出来るような感じなのですが
これをやっていてhtmltodatに要望したい件がありました。


c.2chでのレスアンカーのソースを見ると

<a href=1>&gt;>1</a>
<a href=1-2>&gt;>1-2</a>

のように、「&gt;>xx」の形式で表示されているみたいで
それを「&gt;&gt;xx」にする為に前処理の4番目をつけてみたです。
これなのですが、>>30>>74>>78でおやりになられたように
htmltodatの内部で処理するようにして頂けないでしょうか。

「前処理で出来ているからいいじゃないか」と言われそうですが、
「『&gt;\d+』の『&』を半角に直して下さい」と注意書きするのは
何だかなと思ったもので。

よろしければ、御一考の程宜しくお願い致します。

570 ◆/vmukiyuzw:2008/08/02(土) 00:30:47
>>569
バージョンアップしました(0.8.15)
 ・本文中に「&gt;>x」(xは数字)の文字列があったら「&gt;&gt;x」に変換するよう
  修正。(&は実際は全て半角)

簡単だったので対応しました。
しかし半角アンパサントそのまま書けないのはめんどくさいですね。

571663 ◆fnwcOWFi56:2008/08/02(土) 19:34:55
>>570
ありがとうございます
早速追記したです
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/56

572 ◆/vmukiyuzw:2008/09/22(月) 22:07:53
バージョンアップしました(0.8.16)
 ・HTML取得の際のUser-Agentを Monazilla/1.00〜 に修正。

一部のサイトで問題が出ているようなのでとりあえず修正。
副作用があれば元に戻すかもしれません。

573名無しさん:2008/09/23(火) 21:38:20
過去ログ倉庫@BitTorrent情報局(仮)〜PC〜P2P関係 掲示板
http://jbbs.livedoor.jp/computer/31304/storage/
がdat変換できません 賢者様、正規表現を教えてください。

574 ◆/vmukiyuzw:2008/09/24(水) 00:22:36
>>573さん
正規表現「jbbs過去ログ」ていうのが使えるはずなんですがうまくいきませんでしたか?
変換できないURLを具体的に教えていだたけないかと。

575名無しさん:2008/09/24(水) 00:29:21
>>574
正規表現「jbbs過去ログ」では、変換できませんでした。URLは、
http://jbbs.livedoor.jp/computer/31304/storage/1217046767.html
http://jbbs.livedoor.jp/computer/31304/storage/1218871430.html
の2つです。よろしくお願いします。

576575:2008/09/24(水) 00:38:54
>>574さん
すみません変換できました「したらば(jbbs)」と勘違いしていました。
お騒がせしました。そして ありがとうございました。ど〜もです。

577 ◆/vmukiyuzw:2008/09/24(水) 00:47:19
>>575
おそらく、>>442-443で出ていた状況だと思います。
一応>>466で告知はしたんですがいちいち見てないかもですよね^^;
ということで>>443の正規表現に差し替えてみてください。

578575:2008/09/24(水) 00:53:18
>>577
今試してみましたが、>>443では変換できませんでした。
でも、情報ありがとうございます。

579 ◆/vmukiyuzw:2008/09/24(水) 00:53:46
なんてオチだ・・・
すべっちゃいました^^;

580575:2008/09/24(水) 01:11:21
>>579
いえいえ>>574のヒントが無ければ変換出来ませんでしたので 助かりましたど〜もです。

581名無しさん:2008/11/07(金) 07:07:15
ねとらぼ:2ちゃんねる型掲示板「megabbs」閉鎖 8年半、「無法化」のため - ITmedia News
ttp://www.itmedia.co.jp/news/articles/0811/05/news114.html

582名無しさん:2009/01/25(日) 08:46:14
うんかー(http://unkar.jp/)向けの正規表現を教えていただけませんか?
一通り付属の物を試したのですが×でした

対象アドレス
http://unkar.jp/read/dubai.2ch.net/ghard/1231972881

よろしくお願いします

583 ◆/vmukiyuzw:2009/02/04(水) 22:51:16
>>582さん

ちょっと遅くなってしまいましたが。

これは http://www.geocities.jp/mirrorhenkan/ で検索された結果ですよね?
であれば検索結果のとこにdat化の方法として
663さんの掲示板へのリンクが載っていたはずです。

もう気づいて解決されてるかなとも思うのですが。

584名無しさん:2009/04/25(土) 14:20:22
暇つぶし2ch(http://mobile.seisyun.net/)の正規表現を教えて下さい。

対象アドレス
http://mobile.seisyun.net/cgi/read.cgi/gimpo/gimpo_kaden_1218941409

↓の2つと、デフォルトで一覧に載っている正規表現はエラーでした。

【その1】 http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/756
正規表現
m#<dt.*?>([0-9]+).+?<b>(.+?)</b>(?:</font>|</a>)(?: <small>mailto:(.+?)</small>)? <small>\[(.*?)\]</small><dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi
変換結果式
メール欄逆転

【その2】 >>553
正規表現
m#<dt.*?>([0-9]+).+?<b> ?(.+?)</b>(?:</font>|</a>)(?: <small>mailto:(.+?)</small>)? <small>\[(.*?)\]</small><dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mi k
変換結果式
メール欄逆転

585 ◆/vmukiyuzw:2009/04/25(土) 20:45:53
>>584さん
こちらでは【その1】でも【その2】でも変換できたようなのでどこが問題なのだか・・・
とりあえずどんなエラーになるのか教えてください。
あと環境(OS、htmltodatのバージョン等)も。

586584:2009/04/26(日) 11:37:29
>>585
◆/vmukiyuzwさん
使用していたバージョンは最新のhtmltodat 0.8.16だったのですが、
0.86からの上書きバージョンアップをしていたもので、
自分で追加した正規表現とごっちゃになってしまいました。
私の単純なコピペミスだと思います。
フォルダごと削除し、新たに0.86をインストールをして
【その1】【その2】の両方を試しましたが問題無くdat保存が出来ました。
大変申し訳ありませんでした。

587名無しさん:2009/12/24(木) 05:55:43
ローグ系のRPG 過去ログ
http://hobbit.s41.xrea.com/kako/rogue/

ここの変換が上手く行きません
DAT2HTML0.26でいけそうな気がするのですが。。。
htmltodat Ver 0.8.16使用

588 ◆/vmukiyuzw:2009/12/24(木) 22:54:24
>>587さん
正規表現
m#<DT><A.+?>([0-9]+).+?<b>(.*)</b>(?:</span>)?\[(.*?)\].*?:(.*?)</dt><DD>(.*)</dd>#mik
変換結果式
$2<>$3<>$4<>$5<> (←メール欄逆転)

DAT2HTMLで変換したのは間違いなさそうだったんで>>504,>>538,>>541あたりを参考にしました。
ちょっとした違いですがDAT2HTMLのオプションの設定で違ってくるみたいです

589名無しさん:2009/12/25(金) 02:20:47
>>588
上手くいきました!
ありがとうございます。

590663 ◆fnwcOWFi56:2010/02/13(土) 13:44:58
お世話になっています。
早速ですが、自分の環境では下記URLがhtmltodat0.8.16では
「UTF-8 Unknown code」と出て読み込めないのですが
対処法はありますでしょうか。

http://2chlog.utf8art.com/archives/wmotenai_1232650438.html

591名無しさん:2010/02/14(日) 14:41:29
http://2ch.ac.la/
このサイトの正規表現の記述を教えてください

592名無しさん:2010/02/14(日) 14:42:04
ちなみにほしいログは
ttp://2ch.ac.la/read.php/comic/1189697654/
です

593 ◆/vmukiyuzw:2010/02/15(月) 19:07:30
>>590さん
(SJISに変換するため)UTF-8として正しいコードかチェックしてるんですが
そこのチェックに引っかかっちゃってる状態です。
別の手段でソースを見てみると一部のHTMLコメントがSJISで記述されており
これが引っかかってるようです。

さて、対応としては、読み込めないのはまずいので無理やりでも読み込めるように
しないといけない(不正なコードを何かに置き換える等)と思うのですが
該当部分のプログラムはネットで検索して見つかったものをそのままコピペしたもので
どう修正すればいいのかまだよくわかっていない状態ですので、研究含めて
多少時間がかかってしまうと思います。

お急ぎでしたら、firefoxで該当スレを表示させてソースを表示させると
SJIS変換された状態で表示してくれるので、HTMLソース欄へのコピペ等で
当面対処していただけないでしょうか。

594 ◆/vmukiyuzw:2010/02/15(月) 19:12:02
>>591さん

正規表現
m#<font color="\#0000FF">([0-9]+).+?<b>(.+?)</b></font>(?:&nbsp;\[(.*?)\])?&nbsp;投稿日:(.+?)<div class="plain">(.*?)</div><br />#mik

前処理
s#(<title.*?)@2ch大学: 過去ログ倉庫(</title>)#$1$2#ik
s#<script (.|\n|\r)*?</script>##igk
s#<noscript>(.|\n|\r)*?</noscript>##igk
s#<div style=.+?>\r\n##igk
s#<!-- Rakuten .+?>\r\n##igk
s#<img.*?>##igk
s#<a</a>.*?>##igk
s#<div class="center"><iframe .*?</iframe></div>##igk

変換結果式
$2<>$3<>$4<>$5<>(←メール欄逆転)

本文途中にバナー広告が入り込んじゃってるのを見落としてしまうところでした。
あと、HTML化の際のバグ?なのか、アンカータグがおかしなところがあってこれも
危うく見落としかけました(htmltodatとしてそこまでフォローすべきなのかと
一瞬考えてしまいましたが)。

595名無しさん:2010/02/15(月) 19:38:50
>>594
ありがとうございます

すみませんが
一行が長すぎるせいか、正規表現が正しくないようです
とエラーが出て使えません

お願いします

596 ◆/vmukiyuzw:2010/02/15(月) 20:02:16
あああそうかnbspがコピペの段階で消えてしまうのか

正規表現
m#<font color="\#0000FF">([0-9]+).+?<b>(.+?)</b></font>(?:&nbsp;\[(.*?)\])?&nbsp;投稿日:(.+?)<div class="plain">(.*?)</div><br />#mi

2箇所あるnbsp;の前の&を半角に変えてからやってみてください。

597663 ◆fnwcOWFi56:2010/02/15(月) 20:51:36
>>593
了解しました。
気長にお待ちしております。

598名無しさん:2010/02/15(月) 21:10:01
>>596
ありがとうございました
感謝です

599 ◆/vmukiyuzw:2010/02/16(火) 19:20:39
バージョンアップしました(0.8.17)
 ・文字コードUTF-8のHTMLに不正なUTF-8コードが含まれていた際エラーにしていた
  のをエラーにならないよう修正。

>>593を受けての修正です。
単にエラーチェックを外しただけなのですが
不正なコードはSJIS変換の際に単に「???」と化けるだけで
とりあえず大きな問題ではなさそうなのでこれで済ませることにしました。

600名無しさん:2010/02/16(火) 20:57:15
乙です

601663 ◆fnwcOWFi56:2010/02/17(水) 19:47:49
更新ありがとうございます
読み込めるようになりました。

602 ◆/vmukiyuzw:2010/04/03(土) 03:13:22
>>http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/461

htmltodatでは本文(通常は$5)中のアンカータグ(<a 〜>、</a>)をデフォルトで削除するようにしているのですが
以前、どこかのサイトでメール欄が$2と$3のどちらにもありえるサイトがあり、それに対応しようとすると
$5でなく$6が本文になってしまうため、$6のアンカータグも削除するように今はなっています。
よって最初にお書きになった正規表現の$6のアンカータグが内部的に削除されうまくいかなかったようです。

もう少し経緯を調べてみますが、修正した場合の副作用がまだ不明なので、現時点では$6内のアンカータグは
次のマッチには引き継がれない、ということにさせてください。

603 ◆/vmukiyuzw:2010/04/04(日) 00:26:23
ログを遡っていくと「どこかのサイト」って因縁の(?)にくちゃんねるでした。
v0.4.0のとき(>>209-210あたり参照)に修正したようです。もう5年も前なんですね。

604 ◆/vmukiyuzw:2010/06/20(日) 12:58:11
バージョンアップしました(0.8.18)
 ・文字コード自動判別のロジックを若干見直し。
  文字コードUTF-8のHTMLをSJISと判定してしまう不具合に対応した(つもり)。

ぱっと見は明らかにUTF-8なのに、バイトの範囲と組み合わせをチェックすると
SJISにも当てはまってしまう場合があります。

今までは、「どの文字コードの可能性が最も高いか」判定するために、HTML全文を
「SJIS」「EUC」「UTF-8」それぞれの規則で読んでみて、当てはまる文字の数を調べ
一番多く登場するコードを候補として選択するロジックになっていました。
ただ、文字数で判定すると1文字に3バイト使うUTF-8が若干不利となりSJISと誤判定
される原因となりえます。
そこで、文字数でなくバイト数で判定するよう変更してみました。

605 ◆/vmukiyuzw:2010/07/10(土) 23:53:19
>>http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/575
> それと、htmltodatに限った事ではないかもしれないですが
> 「〜」のUTF-8→Shift_Jis変換がうまくいってないような。

昔Javaやってた頃にこれに悩まされたものです。Delphiでも出るのか・・・
「Shift-Jis」と単に呼ぶ場合と「CP932」と言われるもののの違いに起因する
問題だと思います。(「〜」等はCP932でないと変換できない)

変換の方法として、自分の知る限りでは以下の2通りがあります。

A.Delphiネイティブの機能でUTF-8→SJIS変換する
 (実際には直接の変換はできないので途中Unicodeへの変換を経由する。
 これは関数等は用意されてないのでビット演算で自力で地道に変換する)

B.UTF-8をSJISに変換する関数(内部的にはWindows APIをコールしている)
 を利用する

どうみてもBの方法が簡単そうなのですが、Windows95以前では該当のAPIが
用意されていないということなので、htmltodatではAの方法を使っていました。
が、これはCP932への変換は対応してないようですね。

もう少し調べてみますがBの方法に変更を検討してみます。
Win95で使ってる人とかさすがにいないですよね・・・。

606名無しさん:2010/07/16(金) 05:57:58
http://www.unkar.org/
こちらのサイト用の正規表現を教えていただけないでしょうか?

http://yy14.kakiko.com/test/read.cgi/mirror/1014655362/876
こちらの正規表現を使用したのですが、仕様が変わったのか上手くいきませんでした

dat化したいスレはこれです
http://www.unkar.org/read/academy6.2ch.net/whis/1263893134

よろしくお願いします。

607 ◆/vmukiyuzw:2010/07/16(金) 18:52:31
>>606
もう見られたかもしれませんが 663 ◆fnwcOWFi56 さんがご回答くださっているので
そちらをご参照ください。

http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/581

608名無しさん:2010/07/23(金) 03:18:45
ありがとうございました
無事変換できました

609名無しさん:2010/09/14(火) 20:03:49


610名無しさん:2010/10/15(金) 16:19:02
ご存知かも知れませんが…

インフォシーク iswebライト 終了のお知らせ - インフォシーク ユーザサポートからのお知らせ - 楽天ブログ(Blog)
http://plaza.rakuten.co.jp/usersupport/diary/201008250000/

611 ◆/vmukiyuzw:2010/10/15(金) 20:50:47
>>610さん他
ご心配おかけしていたようで申し訳ありません。
とりあえずお引越ししました。

引越し先:http://mukiyu.g.ribbon.to/

結構やっつけ作業になってしまったので引越し先で何か問題が出るかもしれません。
そのときはここでご連絡ください。

612名無しさん:2010/10/15(金) 23:36:25
>>611
乙です

613 ◆/vmukiyuzw:2010/12/05(日) 01:37:18
>>605
これに関して今日試してみたのですが(←遅い)、うまくいきませんでした。
やっぱり「〜」は「?」に化けてしまいます。

ぐぐって調べてみたのですが(←これも遅い)、思ったより根の深い問題のようで・・・

「CP932」(コードページ932)をプログラム中で指定する方法が何かあるはず、と
たかをくくっていたのですが、検索してみると
「Delphi2009ではストリング型にコードページが指定できるようになりました」
な記事が・・・てことは私が使ってるDel6pesonalでは指定することはできないんじゃね?

・・・

なにか対応策はないのかまだ調べてみますが最悪どうしようもなければ
放置するかもしれません。

614名無しさん:2010/12/28(火) 12:54:45
readme.txtにある$1〜$5は正規表現中のどこを指しているのですか?
いったいどうやって$1〜$5を取得しているのかreadmeを読んでもさっぱり分かりません。

615 ◆/vmukiyuzw:2010/12/28(火) 20:44:50
>>614さん
簡単に言うと、カッコでくくられた部分が順番に$1〜の番号が振られます。
但し、「(?:」で始まるものは番号が振られません。
具体的には、regexps.txtにある「DAT2HTML0.26」を例にとって説明すると

m#<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) ?:(.*?)<DD>(.*)<BR><BR>#mik

・最初のカッコ(?:<A.*?>) → <DT>の直後にある<A 〜>にマッチ。これはグループ化したいためだけのカッコであり、番号を
振りたくないので(?:で始まります
・2番目のカッコ([0-9]+) → その直後にある数字の一回以上の繰り返し(レス番号)にマッチ、これが$1になります
・3番目のカッコ(?:<A HREF="mailto: → これも最初のカッコと同じ理由で(?:なので番号は振られません
・4番目のカッコ(.+?) → カッコが入れ子になってて若干分かりにくいかもしれませんがメール欄にマッチ、これが$2になります
(3番目のカッコの中なので実際には何にもマッチしない場合があるのですがその場合$2は空となります)
・5番目のカッコ(.*?) → <b>と</B>の間にあるので名前欄にマッチ、これが$3になります
・6番目のカッコ(?:</A>|</FONT>) → 名前欄のあとに</A>または</FONT>が来る、ここはメール欄が空かどうかによって
変わってくるのでor表現を使っています。or表現にしたいためだけのカッコなので(?:にして番号を振りません
・7番目のカッコ(.*?) → その後の:の次に投稿日・IDがくるのでそれにマッチ、これが$4になります
・8番目のカッコ(.*) → <DD>と<BR><BR>の間にあるものが本文でそれにマッチ、これが$5になります

うわいざ文章で説明するとなると難しい〜^^;
実際のHTMLと見比べながらだともっと分かりやすいかもしれません。

# 正規表現自体について書き出すとreadme程度では書ききれませんし
# ネット上にいくらでも解説があるので省略したのですが

616 ◆/vmukiyuzw:2010/12/28(火) 22:28:21
補足というか蛇足に近いですけど一つだけ。

5番目のカッコ <b>(.*?)</B> の部分ですが、実は名前欄の中にはトリップ等で細字で表現するため
最後以外に</B>が登場する場合があり、例えば私の名前なんかだと

<b></b> ◆/vmukiyuzw<b></b>

となるんで、.*?の最短一致だと空になっちゃいそうに見えます。
でもそうならないのは、</B>の後ろに(?:</A>|</FONT>)を付けているおかげで、</B></A> または
</B></FONT> の並びになるまでマッチしないという、まあちょっとした小技?です。
他人の書いた正規表現なんてなかなか解読する気にならないでしょうが、参考のひとつになれば。

617名無しさん:2010/12/29(水) 12:53:30
ありがとうございます。やっとなんとか理解できました。
mimizun.comに対応するテキトーな正規表現を書いてみましたので一応載せておきます。

m#<DT>([0-9]+).+?<font.*?><B>(?:<A HREF="mailto:(.+?)">)?(.*?)(?:</a>)?(?:</b></font>):(.*?)<DD>(.*)<BR><BR>#mi

618名無しさん:2011/01/22(土) 09:57:06
unkar.orgにて以下の正規表現を試すのですが、"Sequence (?%c...) not recognized"と出ます。

m#<dt.*?>([0-9]+).*?<span><b>(.*?)</b></span>(?\[(.+?)\])?:(.*?)</dt><dd.*?> (.*?)</dd>#mi

なぜでしょう?

(?\[(.+?)\])?を(\[.+?\])?とすれば問題ないのですが、
できるなら[sage]の括弧を外したいので。

よろしくお願いいたします。

619 ◆/vmukiyuzw:2011/01/22(土) 17:39:28
>>618さん
(?の直後に\がきてるので「そんなシーケンス存在しないよ」と怒られてるのでは?
やりたいのは多分(?:じゃないんでしょうか。

なお、unkar.orgについては>>606-607も参照ください。
有名処の過去ログ保存サイトはたいてい 663 ◆fnwcOWFi56 さんが
自分のサイトで考えてくださっているのでそちらも参照されたほうがいいと思います。
(車輪の再発明になってしまう可能性が高いので)

620名無しさん:2011/04/07(木) 14:11:28
本日、初めてログ速のdat化を試みて
(663 ◆fnwcOWFi56 さんのところで探したけれど、よく分からなかったので)
気づいたことメモっときます。

・DAT2HTML0.26 で変換すると、1レス目を変換した後にエラー吐く。
 ログ速1レス目の直後に挿入されてる広告が引っかかってるらしい。
・2レス目以降のHTMLソースをコピペして DAT2HTML0.26 で変換すると、
 ID前後のHTMLタグが残るだけで、そのほかの部分は問題なく変換される。

自分は拾い損ねたレスだけHTMLソースをコピペ変換して済ませたけど、
前処理で広告スクリプトを削除できれば、
ログ速の変換はなんとかできそうな気がする、と言う報告でした。

621名無しさん:2011/07/20(水) 07:23:26
http://jbbs.livedoor.jp/bbs/read.cgi/radio/14978/1290852881/

このスレのhtmldatのみが上手くいきません(regexps.txtは一通り試しました)
原因は
livedoor レンタル掲示板 開発日誌 : したらば掲示板”投稿不具合についてお知らせ” - livedoor Blog(ブログ)
http://blog.livedoor.jp/bbsnews/archives/51199768.html
にあるとわかっているのですが…
アドバイス・解決策等を教えていただけませんか?

622 ◆/vmukiyuzw:2011/07/20(水) 22:19:46
>>621さん
それってしたらばの生ログをhtml→dat変換したいという話ですかね?
それならしたらばを直接読める専ブラを使えば・・・と思ったのですが
データ破損のせいなのか、したらばのrawmode.cgiの不具合なのか、
全てのレスを読み込めないようですね。
(FireFoxだと1000レスあるがJaneだと765レスまでしか読めない)

とりあえずやってみました。
HTMLの形式自体は素直なものなのですが
頭のほうに例によってガラガラがくっついていて変換の邪魔をしているようなので
これを適当に除いてみます。

変換オプション - 前処理:
#javascriptとstyleシート記述を全部取り除く
s#<script (.|\n)*?</script>##ig
s#<style (.|\n)*?</style>##ig


これを入れると正規表現は既存の「jbbs過去ログ」や「DAT2HTML0.26」等で
変換できるように当方ではなりました。

623名無しさん:2011/07/20(水) 23:20:51
>>622
高速レスありがとうございまう
おかげで無事読み込めました
2010/11/30(火)同日を跨いだしたらばログがいくつか似た状況にあるので応用して使わせて頂きます

624名無しさん:2011/07/22(金) 19:18:29
http://bbs.2ch2.net/admin/readkako.cgi?bbs=visualtanuki&amp;q=1194&amp;q2=1194398043
ここをdat化したいのですがどうやったらできるのですか?

625 ◆/vmukiyuzw:2011/07/22(金) 23:33:08
>>624さん

まず基本的な問題として、デフォルトのhtmltodatでは「403 Forbidden」エラーを食らって
ログ自体を読み込めないみたいですね。
この手の403エラーは大抵User-Agentではねられているケースがほとんどなので
適当に変更します。
htmltodatでUser-Agentを変更するには、ウィンドウの一番上にある「受信オプション」ボタンを
押して「HTTPヘッダの追加」欄に適当なUser-Agentヘッダを入力します。当方の例ですが

User-Agent: Mozilla/5.0

これで読み込めました。


あとはhtml→dat変換の正規表現ですが、htmlの形式自体は素直なのに、意外にもぴったりくる
既存の正規表現はないですね。
「read.cgi7.00?」を基にちょっと書き直してみました。多分書き直し前のものと互換性は保たれていると
思います。

m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>).*?:(.*?)<dd> ?(.*?)<br><br>(<dt.*?>|</dl>)#mik

626名無しさん:2011/07/24(日) 16:56:29
>>625
ありがとうございます
変換は成功したのですが、専用ブラウザで読み込むことができませんどうやったらできるようになりますか?

627 ◆/vmukiyuzw:2011/07/24(日) 20:07:27
>>626
それはお使いの専用ブラウザの種類によります。
Jane系ならスレ欄にdatファイルをD&Dするだけで取り込めますし
ギコナビのようにログフォルダにdatファイルを入れて再起動でいけるものもあります。
かちゅ〜しゃなんかだと専用のツールが必要になるようです。

628名無しさん:2011/08/03(水) 13:09:35
ログ速をdat化するにはどうすればいいかを教えてください

629 ◆/vmukiyuzw:2011/08/03(水) 20:42:56
>>628さん
ログ速に関しては
>>620さんも考えてくださってるし、663 ◆fnwcOWFi56 さんも自分の掲示板で
いろいろ考えてくださっているのですが、なかなか手ごわいみたいですね。

試しに適当なスレで663 ◆fnwcOWFi56 さんが考えてくださった正規表現を
試してみたのですが変換できませんでした。てことはhtmlの形式が一通りでなく
何パターンかあるのかもしれません。となると対応は一層困難になります。

現時点では私の手には追いかねるって感じですかね。時間がとれれば何とかなるかもしれませんが。
すでに取り組んだ人の成果を基に自力でなんとか頑張ってくださいとしか言えないです。

630名無しさん:2011/08/04(木) 02:28:10
>>629
ありがとうございます

631名無しさん:2011/08/05(金) 17:00:19
テレビジンのdat化の方法誰か知っている方いませんか?知っていれば教えてください

632 ◆/vmukiyuzw:2011/08/05(金) 20:50:19
>>631さん
663 ◆fnwcOWFi56 さんが以前に考えてくださっているようです。
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/326

633名無しさん:2011/08/17(水) 04:28:16
いつもお世話になっています
これをDAT化させることはできるでしょうか?
http://www.dotup.org/uploda/www.dotup.org1912892.txt.html

634 ◆/vmukiyuzw:2011/08/17(水) 20:37:28
>>633さん
ログからのリンク先を見てみると、過去ログ保管サイトというタイプのものではなく
ログ収集ツールのようなものみたいですね。

このログについてはたった3レスしかないのでhtmltodat使うよりもエディタでdat作ったほうが
早いような気がするのですが、一応考えてみました。ただサンプルが少なすぎるので
他のログについても適用可能かどうかはわかりません。

前処理:
# スレタイが普通とは違う形式で表現されているので修正
s#\t\t\t<input type="hidden" name="suretai" value="(.*?)">#<title>$1</title>#i
# ガラガラ除去
s#\t.*?(\r\n)##ig
# 日付とIDの間に邪魔なものがあるので取り除いておく
s#</span><a href="" onMouseover="javascript:w_res\('<b',.+?\);" onClick="javascript:ID_menu\('<b',.+?\); return false;" id=".+?">(ID:)</a><span id=".+?">(.*?</span>)#$1$2#ig

変換結果式:
$2<>$3<>$4<>$5<>
(↑メール欄逆転)

正規表現:
m#<a name=.+?><a href=.+?>([0-9]+).+?<span class="na".+?>(.*?)</span>\[<span id=.+?>(.*?)</span>\]<span id=.+?>.*?:(.*?)</span><div class="bo".+?>(.*?)</div>#mik

635名無しさん:2011/08/17(水) 21:20:11
>>634
他のもすべて同じ形なので無事変換できました
ありがとうございます

636 ◆/vmukiyuzw:2011/08/18(木) 20:51:03
よく見てみたら気づいたのですが>>634の正規表現だと
トリップを囲むspanタグが取り除けてないですね。
まあ専ブラでの表示にはおそらく支障は出ないでしょうし
他のパターンでどうなるかサンプルが少なくてわからないので
当面これでよしとしますか。

637635:2011/08/19(金) 02:58:09
巡回ツールで自動作成されたものなのでレスの部分を除いてすべて同じ形でした
支障がないようなのであればこのままこれを使わせていただきます

638名無しさん:2011/08/25(木) 19:18:10
>>632
この方法でやってみたのですが、失敗しました

639名無しさん:2011/08/25(木) 19:29:45
>>638をもっと詳しく書きますと、
>>632の通りに変換すると、「1行が長すぎるか、正規表現が正しくないようです」というメッセージが出て、変換できません

640 ◆/vmukiyuzw:2011/08/26(金) 21:40:50
>>638さん
もう2年くらい前に考えられたものですしそこから形式が変わったのかもしれませんね。
htmlになっているものだとうまくいくようですがそうでないものはすでにログが消えててアクセスできません。

私はそこのサイトに詳しくないので通常のログ?にたどり着く方法がよくわかりません。
サンプルのURLをいくつか教えていただけるとなんとかできるかもしれません。

641名無しさん:2011/08/27(土) 20:42:49
>>640
http://tvz.in/thread/ntv/1287017888/

642 ◆/vmukiyuzw:2011/08/28(日) 00:48:49
>>641
見てみましたが現在のhtmltodatでdat化するのはかなり難しそうですね。

htmlの形式自体はシンプルなので適用する正規表現を書くのは全然難しくなさそうなのですが
問題なのはレスアンカーしてるレスがレスアンカー元のレスの直後に並べ替えられていること。
(レス47の直後に129,167が来てる等)
これを単にdat変換しても本来のレス番と全然違うものになってしまいレス番ポップアップとかが
全く意味のないものになってしまいます。
それを正しく並べ替えるような機能は今のhtmltodatにはありません。

EXCELとか使える方なら何とかできる可能性はありますがそうでなければ自力で
変換前か後に自力で並べ替えるしかないと思います。

643 ◆/vmukiyuzw:2011/08/28(日) 00:55:54
基本的に、一つのレスを一行のdatに変換することが基本機能なので
レスの順番を変えられても対応できないってことです。
あぼーんでレス番が飛ぶケースには一応対応したんですが逆転まではちょっと。

644名無しさん:2011/08/28(日) 02:25:17
>>642
>>643
ありがとうございます

645名無しさん:2011/08/28(日) 02:28:29
http://2chnull.info/r/liventv/1287017888/1-1001
このような場合も変換できません
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/441
の通りにやってみたのですが、うまくいきません

646 ◆/vmukiyuzw:2011/08/28(日) 19:58:01
>>645さん
ログの形式が微妙に変更されてるようですね。
> http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/441
を基にちょっと修正してみました。

前処理:
s#<title.+?/title>##ik
# タイトルの表現形式が以下のように変更されている
s#<h1 id="title">(.+?)(\n|<a )#<title>$1</title>#ik
# 2ch外のサイトへのリンクが消えてしまう副作用があったため下のものに変更
#s#<a.+?>(h?ttp://\w+?\.(?:2ch\.net|bbspink\.com)/test/read.cgi/\w+?/\d+/?)</a> \[<a href=".+?">cache</a>\]#$1#igk
s#\[<a .+?>cache</a>\]##igk
# 「駄レス!」「良レス!」のマークを削除
s#<img src.+?>##igk
# トリップ等細字になるべき部分を補正
s#<strong>#</b>#igk
s#</strong>#<b>#igk

正規表現:
m#<dt>([0-9]+):<em>(?:<b>)?(?:<a href='javascript:alert\("(.*?)"\);'.*?>)?(.+?)(?:</a>)?(?:</b>)?</em>:(.+?)</dt><dd>(.+?)</dd>#mik

647 ◆/vmukiyuzw:2011/08/28(日) 20:59:37
> s#<title.+?/title>##ik
> # タイトルの表現形式が以下のように変更されている
> s#<h1 id="title">(.+?)(\n|<a )#<title>$1</title>#ik

についてちょっと補足。

htmltodatでは、<title>と</title>タグで囲まれてる中をスレタイとして認識する仕様ですが、
このサイトのログの場合、<title>タグの中にスレタイとは別の記述がされており
他の部分に <h1 id="title">スレタイ<a 〜 みたいな形式でスレタイが表現されているので
(こういう過去ログ保存サイトではしばしば見かけられることです)、
まず1行目でスレタイが書かれてない偽の?<title>タグを削除してしまい
3行目で実際のスレタイが書かれてる部分を<title>タグの形に変換してしまうことにより
スレタイと認識させているわけです。
前処理では割と良く使われる方法なので参考になれば。

648 ◆/vmukiyuzw:2011/09/27(火) 22:42:30
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/734
> あとここってURL見たらわかるように
> レス番が逆転表示されとりますがな
> htmltodatでこういうケースにも対応して頂けたら嬉しいです(私が)

このスレでも少し話が出てたので若干。(>>642)

htmltodat単独では現状無理ですし、今後また別のパターンが出てきたりして
いちいち対応する羽目になるのはいやなので手出しする気が起きないのですが
例えば 変換オプション - 変換結果式 で

$1<>$3<>$2<>$4<>$5

とかしてやると

1<>名無しさん<><>2001/02/09(金) 22:49<>〜

みたいにレス番付きでdat化できます。
レス番があれば並べ替えはいろんな方法で可能ですからお好みの方法で
ゴニョゴニョしていただければいいのではないかと。

自分なら
・上の方法で作ったdatをエディタで読ませる
・<>をタブ文字に変換
・EXCELに貼り付け、レス番でソート
・レス番の列を削除
・エディタに貼り戻し、タブ文字を<>に再変換して保存

まあわざわざEXCEL通さなくてもdat形式のままでソートできるツールも
探せばありそうですけどね。

649 ◆/vmukiyuzw:2011/09/28(水) 19:32:31
>>648
また検証もせずに適当なことを書いてしまった・・・

> 自分なら
> ・上の方法で作ったdatをエディタで読ませる
> ・<>をタブ文字に変換
> ・EXCELに貼り付け、レス番でソート
> ・レス番の列を削除
> ・エディタに貼り戻し、タブ文字を<>に再変換して保存

上の手順ですが、EXCELのバージョンにもよるかもしれないですが
1セルに256文字以上1024文字以下の文字を入力すると
"#####〜"と化けてしまうようなのです。
http://support.microsoft.com/kb/410234/ja
数式バーには正しい値が表示されるので見かけだけの問題かと思ったのですが
全体をコピーしてエディタに貼り付けると"#####〜"のままコピーされてしまい
まずいことになります。

若干面倒ですがEXCELVBA使ってセルの内容をdatの形式に結合し
1行ずつテキストファイルに出力する方法のほうが良さそうです。

650 ◆/vmukiyuzw:2011/10/01(土) 23:27:31
しかしまあ単に文字列順でソートするのではダメで、第1フィールドを数値と認識して
ソートしないといけないんで単純にはいきませんね。

どのみちソート後に第一フィールドは切り捨てないと正常な形式のdatにはならないんで
数値ソートの出来るテキストエディタがあれば後処理も含め楽なんでしょうけど、ちょっと
検索したくらいでは見つからないですね。
(秀丸のマクロで数値ソートが出来るものがあったんですが遅すぎてイマイチでした)

コマンドベースのものならいろいろあるんですけどね。
windows標準のsortコマンドは文字列順しかできないのでダメですが、unix系の
sortコマンドならOKですし、他にも例えば
http://www.vector.co.jp/download/file/winnt/util/fh428840.html
とかフィールドを認識してかつ数値ソートができるので良さそうです。
第1フィールドを切り飛ばすのはsedあたりにつないでもらうとして。
s/^[0-9]+?<>//

651名無しさん:2011/11/08(火) 20:38:15
http://logsoku.com/thread/yuzuru.2ch.net/mj/1279288588/
変換方法を参考にdat化を試みたのですが、旨くいきませんでした。

正規表現や前後処理などどのようにすれば宜しいのでしょうか?
教えていただければ幸いです。
お願いいたします。

652 ◆/vmukiyuzw:2011/11/09(水) 20:35:32
>>651さん
logsoku.comについては663 ◆fnwcOWFi56 さんも以前自分の掲示板で考えてくださっているようですが
その時点からログの形式がかなり変更されているようです。
とりあえず考えてみました。

前処理:
# ガラガラを適当に除去
s#<span .*?</span>##igk
s#<script .*?</script>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
s#(ID:)<a href=.+?>(.+?)</a>(.*?)\[\d+.+?\]#$1$2$3#igk

正規表現:
m#<a name="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<font color=green>)<b>(.+?)</b>(?:</a>|</font>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s<br />.*?</dd>#mik


htmlが変に加工されてスペースやタブがやたら挿入されているので\sを多用しています。

653 ◆/vmukiyuzw:2011/11/09(水) 20:43:23
>>652
ちょっと間違えた(あまり影響は無いと思いますが)

# ガラガラを適当に除去
s#<span .*?</span>##igk
s#<script .*?</script>##igk

# ガラガラを適当に除去
s#<span (.|\n)*?</span>##igk
s#<script (.|\n)*?</script>##igk

654651:2011/11/10(木) 22:13:24
◆/vmukiyuzwさん、教えていただきありがとうございます。
そして、御礼が遅くなりまして申し訳ありません。

無事に補完することが出来ました。
自分はどうもオリジナルでパラメータを組むのが不得意で...OTL

また困った時に、お力添えいただければ幸いです。

655名無しさん:2012/01/23(月) 13:59:47
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/769-773
で誘導先が違うようなのでこちらに来ました。

その83なんですが
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/769
の通りやっても「全然ヒットしないので正規表現が正しくないようです」
で変換できません。
htmltodat0.8.18を使わせて頂いております。

656 ◆/vmukiyuzw:2012/01/23(月) 21:04:40
>>655さん
http://yy14.kakiko.com/test/read.cgi/mirror/1213700846/769
の回答でほぼ正解だと思うのですが、ガラガラ除去がちょっと足りなくてエラーになってるようです。
前処理の最後に以下を付け加えてみてください。

s#<tr>.*?</tr>\n##igk

それから、変換後のメール欄にゴミが入ってしまうようなので、正規表現は以下のほうが良いと思います。
(1ヶ所半角スペースを足しただけですが)

m#<dt.+?><a name=".+?"></a>([0-9]+) <span>(.+?)</span> (.*?)((?:\d{2}|\d{4})/\d+/.+?)?</dt><dd.*?>(.+?)</dd>#mik

あと、元のレス(485-487)には書かれていて769では書き漏れされてるようですが

変換結果式
$2<>$3<>$4<>$5<> (←メール欄逆転)

も必要ですね。

# ただ自分が見た限りではもともと2ch上ではメール欄が入ってるレスでも
# そのサイトに持ってきた時点でメール欄は消滅してしまうようです
# それならメール欄逆転とか使わない他の方法も考えられますが、元のアイデアを尊重しておきます

657655:2012/01/23(月) 23:25:46
変換できました。

>>656さん 本当にありがとう。<(_ _)>

658657:2012/01/28(土) 20:46:17
>>657ではお世話になりました。<(_ _)>

また、その83なのですが、http://4ch.viewerd.com/hgame2/1326818225
「1行が長すぎるか、正規表現が正しくないようです」がでました。
1001まで変換はされているのですが、JANEで読むと、1001が
1001 名前:ここ壊れてます[] 投稿日:
になります。

htmltodatの正規表現の表示レスを1〜1001 にすると「1行が長すぎるか〜
は出ませんがやはり 1001 名前:ここ壊れてます[] 投稿日:
になります。
修正可能でしたらよろしくお願いします。

659 ◆/vmukiyuzw:2012/01/28(土) 22:41:40
>>658さん
まず、「1行が長すぎるか、〜」のエラーが出るのは、スレ内容の前だけではなく後ろにも
ガラガラが多くて、1001までの変換は完了しているのにその後も残りのHTMLの変換を試みて
エラーになっちゃうようです。珍しいケースですがありえない話ではないですね。
変換自体は成功しているのでこのエラーは無視してもいいと思いますが、気になるようなら前処理に

s#<div class=.*?</div>\n##igk

とでも足せば消えると思います。(この辺はまあ適宜に)

あと1001が「ここ壊れてます」になるのは、そもそも元の正規表現が1001の形式にうまく対応できて
いないようです。>>655-656で挙げられたスレでも発生しているのでは?

ちょっと泥縄的対応ですが

m#<dt.+?><a name=".+?"></a>([0-9]+) <span>(.+?)</span> (.*?)((?:(?:\d{2}|\d{4})/\d+/)?.+?)</dt><dd.*?>(.+?)</dd>#mik

もしくはいっそ、現状(メール欄が存在していない)に合わせて無駄な部分を取っ払って

m#<dt.+?><a name=".+?"></a>([0-9]+) <span>(.+?)</span> ()(.*?)</dt><dd.*?>(.+?)</dd>#mik

とかでも多分問題ないと思います。

660658:2012/01/29(日) 15:16:54
「ここ壊れてます」出なくなりました。
◆/vmukiyuzwさん、本当にありがとう。<(_ _)>
ありがとう。<(_ _)>

661名無しさん:2012/02/02(木) 14:16:11
度々お世話になってます。

http://logsoku.com/thread/toki.2ch.net/kaden/1306858024/

その56なのですが、「全然ヒットしないので正規表現が正しくないようです」
で変換できません。

それと、その115で結構ログ見つかるのですが、dat化が載っておらず
dat化できません。

よろしければ教えてくださいませ。

662 ◆/vmukiyuzw:2012/02/02(木) 21:48:42
>>661さん
まず「その56」、というかlogsokuについては以前も質問が来てます。
>>652-653でどうでしょう。

ただ、>>659と同様の現象で、後ガラガラのせいで変換は成功するのに
「1行が長すぎるか、〜」のエラーが出ちゃうようです。気になるようなら
前処理に

s#<tr (.|\n)*?</tr>##igk

とでも足してください。

663 ◆/vmukiyuzw:2012/02/02(木) 21:50:55
>>662続き
次に「その115」ですが、こういう場合できれば具体的なURLを書いて欲しいです。
(でないと「その○○」にログが存在するスレをこちらで探さないといけなくなるので)

まあ今回は
http://logsoku.com/thread/toki.2ch.net/kaden/1306858024/
に該当するログ
http://viva2ch.net/kaden/1306858024.html
が存在していましたので、これを調べてみました。

それから「その115」に関しては663さんの掲示板を見ても変換機に追加した経緯とかの
記述が見つからないようですね。ここで私が回答していいものかもわかりませんけど
質問された以上は考えてみました。

正規表現:
m#<a name="(\d+)">\d+</a><i>(.+?) \[(.*?)\]</i><span>(.+?) ?</span><p> (.*?) </p>#mik

前処理:
# 後ガラガラ除去(amazonを直接指定するのはイマイチだが・・・)
s#<li><a href.*?</li>##igk
s#<a href="http://www.amazon.*?</a>##igk
s#<img .*?>##igk
# これは不要かもしれないがブラウザによってはうまく動かない可能性があるので念のため
s#<br />#<br>#igk

変換結果式:
$2<>$3<>$4<>$5<> (←メール欄逆転)

664 ◆/vmukiyuzw:2012/02/02(木) 22:33:51
>>663
s#<a href="http://www.amazon.*?</a>##igk

これはさすがにあまりにヒドいので(あんまりないでしょうけどスレ内のリンクにヒットする
可能性がある)、以下に差し替えてください。

s#<a href="http://www\.amazon.*? title=.*?</a>##igk

665661:2012/02/03(金) 02:35:09
◆/vmukiyuzwさん、ありがとうございます。
JANEの設定ファイルが壊れてしまい、復旧中のため違うスレでやってみました。
(urlの件は失礼しました)

AviUtl総合スレッド71
2ch    http://anago.2ch.net/test/read.cgi/software/1321370210/
その56  http://logsoku.com/thread/anago.2ch.net/software/1321370210/
その115:http://viva2ch.net/software/1321370210.html

その56は改行が正しく変換されないようです。
その115は「fatal error」が出て変換されません。
エラーメッセージを閉じ、変換開始をしますとhtmltodatが落ちてしまいました。

666 ◆/vmukiyuzw:2012/02/03(金) 19:36:07
>>665さん

> その56は改行が正しく変換されないようです。

専ブラが<br/>タグでの改行に対応していないと思われます。
>>663で<br />については言及していたのですが<br/>は見落としてました)
前処理で一括で変更してやればよいでしょう。

s#<br/>#<br>#igk


> その115は「fatal error」が出て変換されません。

>>663でサンプルにしたのはIDのないスレで、IDのあるスレだとうまくいかないです。
(IDの前後に<em></em>タグが付加されているため)
対処法はいろいろ考えられますがとりあえず単純には、前処理に以下を追加

s#</span>##igk
s#<em># #igk
s#</em>##igk

で正規表現はちょっと変更

m#<a name="(\d+)">\d+</a><i>(.+?) \[(.*?)\]</i><span>(.+?) ?<p> (.*?) </p>#mik

これでIDの有無に関わらず変換できると思います。

667665:2012/02/04(土) 00:33:12
◆/vmukiyuzwさん、その56、その115共に変換できました。
ありがとうございました。<(_ _)>

668名無しさん:2012/02/26(日) 17:43:25
その152(bbspink板のみ):ttp://adult-bbs.com/kilauea/hgame2/read/1324447162/
のdat変換教えてくださいませ。

669 ◆/vmukiyuzw:2012/02/26(日) 21:49:18
>>668さん
HTMLの形式はシンプルだしガラガラもほとんどないので悩むとこはなかったです。

正規表現:
m#<p>(\d+?) :()<strong>(.*?)</strong> (.+?)</p>\s*(.*?)\s*<hr />#mi

前処理:
# スレタイ補正
s#(<title>.*?) - アダルト無料掲示板(</title>)#$1$2#ik


しかし、名前欄の太字細字の区別とか、メール欄とかに頓着しないサイトが増えてるのかな?
正規表現書くときには簡単になるんでありがたいですが。

670名無しさん:2012/02/27(月) 00:44:05
dat化できました。
◆/vmukiyuzwさん、いつもありがとう。<(_ _)>

671名無しさん:2012/03/11(日) 08:51:03
>>652-653>>662を見た上で、logsoku.comの前処理&正規表現をもう一度まとめ直していただけませんか?
よくわかりません(前処理・正規表現・後処理の使い方、datへの変換方法等のhtmltodatの基礎知識はわかります)
身勝手な依頼ですがお願いできないでしょうか?

672 ◆/vmukiyuzw:2012/03/11(日) 15:12:48
>>671さん

> >>652-653>>662を見た上で

これに加え>>666も考慮しておく必要がありますね。

まあ要は最初書いたもの(>>652)に前処理を一部差し替え&追加していってるだけなんですけどね。


前処理:
# ガラガラを適当に除去
s#<span (.|\n)*?</span>##igk
s#<script (.|\n)*?</script>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
s#(ID:)<a href=.+?>(.+?)</a>(.*?)\[\d+.+?\]#$1$2$3#igk
# 後ろガラガラの除去
s#<tr (.|\n)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

正規表現:
m#<a name="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<font color=green>)<b>(.+?)</b>(?:</a>|</font>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s<br />.*?</dd>#mik

673名無しさん:2012/03/11(日) 21:09:27
>>672
◆/vmukiyuzwさんありがとうございました!
logsoku.comは頻繁に見かけるので助かります!

674名無しさん:2012/03/12(月) 18:30:52
>>673ですがギブです
以下が上手く変換できません
◆/vmukiyuzwさんの所では変換できてますでしょうか?(最初からURL貼れば良かった…後悔)

http://logsoku.com/thread/hayabusa.2ch.net/news4vip/1331380426/

675 ◆/vmukiyuzw:2012/03/12(月) 19:49:06
>>674
試してみましたがこちらでは問題なく変換できます。

「上手く変換できません」というのは何かエラーが出るのですか?
それとも変換結果が専ブラでちゃんと読めないとかの不正な状態ですか?
他のスレ(できれば別の板のログがいいんですが)でも同じ状況でしょうか?

676名無しさん:2012/03/12(月) 20:29:55
エラーですね
unmatched () in regexp.
というエラーメッセージが出ます
[一括変換(B)][subject.txt作成(T)]の上は「前処理...」と表示されています
dat変換自体が上手く行われてない模様です

http://logsoku.com/thread/」でググったスレをいくつか変換したのですがどれも結果は上記と同じです
http://logsoku.com/thread/hayabusa.2ch.net/livejupiter/1330100297/
http://logsoku.com/thread/hibari.2ch.net/news4vip/1311095829/
http://logsoku.com/thread/hatsukari.2ch.net/news/1305543291/
http://logsoku.com/thread/raicho.2ch.net/newsplus/1306742633/

677名無しさん:2012/03/12(月) 20:35:42
>>675
自分のファイルをまとめました
おかしな点はありますか?
http://www.dotup.org/uploda/www.dotup.org2738708.zip.html
DLパス「htmldat」です to入れ忘れました^^;

678 ◆/vmukiyuzw:2012/03/12(月) 20:39:46
>>676

> unmatched () in regexp.

ていうのは正規表現の文法エラーですよ。
>>672で書いたものを正しくコピーして貼り付けたのなら起き得ないはず。
もう一度そこからやり直してみてください。

679 ◆/vmukiyuzw:2012/03/12(月) 20:54:22
>>677
お使いの専ブラは何ですか?

前処理中の

# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk

s#<img src="http://cdn.logsoku.com/%28img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk

に、半角カッコが%28にエンコードされちゃってますね。これがエラーの原因です。
専ブラでなくIEとかでこのスレを表示してコピーしてみたら上手くいくかもしれません。

680名無しさん:2012/03/12(月) 21:12:41
>>679
まず結果から「変換成功」です!
長々お付き合い下さり◆/vmukiyuzwさん本当にありがとうございました

ずっと>>678見てからおかしいなぁ?と思いながら何度も試してました
専ブラは、確固とした意志を持った上での「Jane Doe Style Version 2.78 (2.7.8.0)」です
いやーまさかURLエンコードされてたとは…\(^o^)/
こりゃいつまで経っても変換できない訳だわ

多分ReplaceStr.txtの(恐らく自分で設定した)
//▽URL内の"("")"をエンコードしてURL化する
<rx2>(tp://[\w%&\--/=]*)\(([\w%&\--/=]) $1%28$2 msg
<rx2>(tp://[\w%&\--/=]*)\)([\w%&\--/=]) $1%29$2 msg
が原因っぽいのかな?かな?

681 ◆/vmukiyuzw:2012/03/12(月) 21:23:15
>>680
なるほどそういうことでしたか。
専ブラの種類によってはこういうエンコードしちゃうものがあるのかと思って
正規表現書く際には考慮しないといけないのかと一瞬思ってしまいました。
ReplaceStrですか〜そこまでは考えなかったです。

682名無しさん:2012/03/20(火) 02:33:42
その27をhtmltodatで変換すると変換警告が出るのですがどうしたらいいでしょうか?
http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/756n
の正規表現と変換結果式を設定して変換ボタンを押すと

変換警告
レス 15-17 の間が飛んでいます
レス 30-32 の間が飛んでいます
レス 45-47 の間が飛んでいます
レス 60-62 の間が飛んでいます
レス 75-77 の間が飛んでいます
レス 90-92 の間が飛んでいます
レス 105-107 の間が飛んでいます
レス 120-122 の間が飛んでいます
レス 135-137 の間が飛んでいます
レス 150-152 の間が飛んでいます
レス 165-167 の間が飛んでいます
レス 180-182 の間が飛んでいます
レス 195-197 の間が飛んでいます
レス 210-212 の間が飛んでいます
レス 225-227 の間が飛んでいます
レス 240-242 の間が飛んでいます
レス 255-257 の間が飛んでいます
レス 270-272 の間が飛んでいます
レス 285-287 の間が飛んでいます
レス 300-302 の間が飛んでいます
レス 315-317 の間が飛んでいます
レス 330-332 の間が飛んでいます
レス 345-347 の間が飛んでいます
レス 360-362 の間が飛んでいます
レス 375-377 の間が飛んでいます
レス 390-392 の間が飛んでいます
レス 405-407 の間が飛んでいます
レス 420-422 の間が飛んでいます
レス 435-437 の間が飛んでいます
レス 450-452 の間が飛んでいます
レス 465-467 の間が飛んでいます
レス 480-482 の間が飛んでいます
レス 495-497 の間が飛んでいます
レス 510-512 の間が飛んでいます
レス 525-527 の間が飛んでいます
レス 540-542 の間が飛んでいます
レス 555-557 の間が飛んでいます
レス 570-572 の間が飛んでいます
レス 585-587 の間が飛んでいます
レス 600-602 の間が飛んでいます
レス 615-617 の間が飛んでいます
レス 630-632 の間が飛んでいます
レス 645-647 の間が飛んでいます
レス 660-662 の間が飛んでいます
レス 675-677 の間が飛んでいます
レス 690-692 の間が飛んでいます
レス 705-707 の間が飛んでいます
レス 720-722 の間が飛んでいます
レス 735-737 の間が飛んでいます
レス 750-752 の間が飛んでいます
レス 765-767 の間が飛んでいます
レス 780-782 の間が飛んでいます
レス 795-797 の間が飛んでいます
レス 810-812 の間が飛んでいます
レス 825-827 の間が飛んでいます
レス 840-842 の間が飛んでいます
レス 855-857 の間が飛んでいます
レス 870-872 の間が飛んでいます
レス 885-887 の間が飛んでいます
レス 900-902 の間が飛んでいます
レス 915-917 の間が飛んでいます
レス 930-932 の間が飛んでいます
レス 945-947 の間が飛んでいます
レス 960-962 の間が飛んでいます
レス 975-977 の間が飛んでいます
レス 990-992 の間が飛んでいます

と言った感じになります。
変換したURLはhttp://yomi.mobi/read.cgi/awabi/awabi_tvd_1331986300/です。

683 ◆/vmukiyuzw:2012/03/20(火) 16:33:15
>>682さん
該当のスレをブラウザで表示して「〜の間が飛んでいます」の番号と見比べるとわかるのですが
15レスごとにレスとレスの間にバナー広告が挟まれてますね。
これが邪魔をしてその直後のレスに正規表現がマッチしなくなったという状況のようです。

対処としては、前処理を使ってバナー広告の部分(<br><script 〜)を削除してしまうというのも
一つの方法ですが、正規表現を修正してマッチさせちゃうほうが簡単かな?
以下に修正してみてください。

m#<dt.*?>([0-9]+).+?<b>(.+?)</b>(?:</font>|</a>)(?: <small>mailto:(.+?)</small>)? <small>\[(.*?)\]</small><dd> ?(.*?)<br><br>(<dt.*?>|</dl>|<br><script)#mik


ところで上で変換テストをしていて気づいたのですが、別の問題点を発見してしまいました。
レス中にURLリンクが書き込まれていると、先頭の「http://」を勝手に(?)省略しちゃうようです。
(該当スレをブラウザで表示してよく見るとわかるはず)

この状態のままdatに変換して専ブラで読ませてもリンクであることを認識できずいろいろ不都合が
あると思われるので、補正したほうがよいでしょう。
前処理に以下を記述してください。

# 省略された「http://」を補う
s#<a href="http://yomi\.mobi/rjump/.*?>(.*?)</a>#http://$1#igk

684名無しさん:2012/04/06(金) 16:13:27
お世話になります。

2ちゃんねるの国(その120)、具体的にはhttp://2chland.net/gcomic/1113225299.html
2ちゃんねるのエリート(その141)、具体的にはhttp://elite2ch.info/gcomic/1128762503.html

以上のスレを.dat化したいのですが、お力添えよろしくお願いします。

685 ◆/vmukiyuzw:2012/04/06(金) 20:28:56
>>684さん
説明の都合上まず「その141」 elite2ch.info の方からいきます。
実はこのサイト、自分は以前別のルートで見つけていて、ちょっと気になる点があったので
正規表現他を調べてメモっておいたものでした。

気になる点というのは、このサイトのHTMLにはレス番号(htmltodatでは$1でマッチさせるもの)
が存在せず、<ol><li>タグでレスに連番が振られているのです。
(<ol>タグの後の<li>タグは1からの連番として表示される)

これはhtmltodatでは想定していないことなので、どうしたものかと思いましたが、レス番号以外のもの
にマッチさせても仕方がないので、とりあえず$1をダミー(何にもマッチさせない)にしてみました。
プレビュー欄にレス番が表示されないという若干の不都合はありますが、dat変換自体は問題なく
できるようです。


正規表現:
m#<li><span>()(.*?) ?\[ ?(.*?) ?\] ?(.*?)</span>\s*<p> ?(.*?) ?<br></p>#mi

前処理:
# 日付とIDの間に何かあると邪魔なので除去
s#</span><span>##igk
# レス中の不要なタグを除去
s#<em>##igk
s#</em>##igk
s#<strong>##igk
s#</strong>##igk
s#<img .*?>##igk
# <br />タグに対応していない専ブラへの対応
s#<br />#<br>#igk
# 後ガラガラがいっぱいあるので地道に除去
s#\r\n\s*<a .*?</a>##igk
s#<object .*\r\n##igk
s#<param .*\r\n##igk
s#<embed .*\r\n##igk
s#<iframe .*\r\n##igk
s#<div .*\r\n##igk

変換結果式:
$2<>$3<>$4<>$5<>
(↑メール欄逆転)



次に「その120」 2chland.net ですが、HTMLソースを見てみると「その141」とそっくり。
正規表現他も上と共通でいけると思います。

(実際には細かい差異はあったのですが上の正規表現はその差分を吸収したものにしています。
前処理も「その120」には不要なものもあって多少冗長なのですが特に問題はないと思います)

686684:2012/04/07(土) 11:40:20
>>685

◆/vmukiyuzwさま
早速の対応、ありがとうございました。

htmltodatにて.dat取得、専ブラ(Jane系)にて確認しました。
特に問題なさそうです!

またお力添え、よろしくお願いいたします。

687名無しさん:2012/04/20(金) 15:07:46
2ちゃんねろ(その155)より、
http://www.2channero.com/comic/1112437741/
のスレを.dat化したいのですが、お力添えよろしくお願いします。

追記
ココのサイトは100単位でスレを表示する使用になっているようです。
100スレずつでもかまいませんのでよろしくお願いいたします。

688 ◆/vmukiyuzw:2012/04/20(金) 20:34:03
>>687さん
HTMLの形式自体は<div>タグや<span>タグで比較的きれいに構造化されているので
マッチする正規表現を書くのは難しくないです。
(<span class='id'>タグが何の意味も成してないのは今のところ仕様かな?)

正規表現:
m#<div class='number'><span.*?>(\d+).*?<span class='name'>(.*?)</span><span class='mail'>\[(.*?)\]</span><span class='date'>(?:投稿日)?:?(.*?)</span>.*?<div class='resc'.*?> ?(.*?)\s*</div>#mik

前処理:
# タイトルに余分なものがついてくるので補正
s#(<title>.*?) \(\d+\)【.*?】(</title>)#$1$2#ik

変換結果式:
$2<>$3<>$4<>$5<>
(↑メール欄逆転)


ちなみに100レスずつしか表示できないのは何とかならないか調べてみましたが
ちょっとわからなかったですね。
何とかお好みの手段でつなぎ合わせて一個のdatにして頂くしか仕方ないかと思います。
101以降のレスを変換しようとすると「レス番が飛んでいます」と変換警告がいちいち
出てきちゃいますが無視して問題ないと思います。

あと、URLをhttp://www.2channero.com/comic/1112437741/s1001/(1001以降表示)にすると
1002、1003のレスが(内容は空っぽですが)表示されます。これをこのままdat変換すると
当然1003レスまで変換されてしまいます。
1001到達以外のスレを調べてみましたがやはり2レスだけ余分に表示されるので、このサイトの
仕様のようですが、元の2chでのスレには存在していないものと思われます。
まあ単なるゴミなんで表示上邪魔な以外実害はないでしょうが、この余分な2レスを
取っ払いたければ、後処理で

s#<><><><>\s*##igk

とする方法があります。
ただ、datのつなぎ合わせにエディタを使うのならそこで<><><><>の行を手動で削除しちゃっても
いいでしょう。
もしくは「dat変換結果」ウィンドウ上で同様に<><><><>の行を削除してから保存する、
というのもあります。

689名無しさん:2012/04/20(金) 21:52:06
◆/vmukiyuzwさま

100スレずつの表示の件まで調査までいただき、恐縮です。
仕様(先ほどは誤変換してしまいました、お恥ずかしい)に
関しても、1001以降のスレに関しても了解しました。

地道に全てをdat化して、最後にエディタにて全てつなぎ合わせて、
完全構築したいと思います。

正直出来れば、自分で対応できればなぁと思うのですが...。OTL
初心者サイトも自分にあったものを見つけられず苦労しています。


わたしも含め、いつも質問者に丁寧に対応していただき感謝です。

690名無しさん:2012/06/15(金) 15:24:44
http://logsoku.com/thread/kohada.2ch.net/gamestg/1338685324/

>>672を適用しても変換されませんでした。
何かやりかたを間違えているのでしょうか…?

691 ◆/vmukiyuzw:2012/06/15(金) 19:19:01
>>690さん
>>672の頃と比較すると、ガラガラの量が若干増えていて取り除ききれなくなってるようです。
これはまあイタチごっこみたいなもんなんで(サイト側は見栄えや使い勝手を改善しようとして
やってるんでしょうから)地道に対処していくしかないです。
とりあえずですが前処理に以下を追記してみてください。

s#<div (.|\n)*?</div>##igk


もう一度ログ速(logsoku.com)について現状をまとめ直しておくと、以下のようになると思います。
(言うまでもないかもしれませんが今後も変更の可能性がもちろんあります)

前処理:
# ガラガラを適当に除去
s#<span (.|\n)*?</span>##igk
s#<script (.|\n)*?</script>##igk
s#<div (.|\n)*?</div>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
s#(ID:)<a href=.+?>(.+?)</a>(.*?)\[\d+.+?\]#$1$2$3#igk
# 後ろガラガラの除去
s#<tr (.|\n)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

正規表現:
m#<a name="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<font color=green>)<b>(.+?)</b>(?:</a>|</font>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s<br />.*?</dd>#mik

692 ◆/vmukiyuzw:2012/06/18(月) 21:44:02
何を書いてるのか意味が伝わりにくかったかもしれませんね。

「ガラガラ」というのはこのスレを頭のほうから検索してもらえると見つかると思いますが
Javascriptやスタイルシートの記述や(最近では広告の記述も多いかな?w)等、
htmlからdatに変換するためには邪魔な要素のことを(私が)勝手にそう呼んでいます。

なぜこれが邪魔かというと、変換に使用しているbregexp.dllの暗黙の仕様、というか
正規表現自体の制限のようなもので、あまり長い文字列に正規表現を適用させようとすると
「fatal error」(致命的エラー)を起こしてしまうため、それを起こさないようできるだけ
変換対象とは関係ない文字列を前もって削除する必要があるのです。

で、それを取り除くための手段として「前処理」という事前変換機能があるので
これを使ってちまちまと削除しているわけです。

693名無しさん:2012/06/26(火) 02:13:36
>>691-692
遅くなりましたが変換確認致しました。ありがとうございます。
サイトが改良されるたびにガラガラも増えていってキリがないんですね…

694名無しさん:2012/07/24(火) 11:21:31
ログめも(logmemo.org)
http://logmemo.org/hayabusa.2ch.net/livejupiter/1343086426
これらはどうにかならないでしょうか

695 ◆/vmukiyuzw:2012/07/24(火) 21:25:56
>>694さん
ログめもについては、以前とあるスレにリンクが貼られてたことがあって
そのときに調べたことがありました。

HTMLの形式としては比較的クラシカルで、DAT2HTMLが吐くような奴に似てるんですが
1レス目だけ後に広告がつく関係で多少終わり方が違うところが工夫すべき点ですかね。


正規表現;
m#<dt><a.*?>(\d+).+?(?:<a href="mailto:(.+?)">)?<b>(.*?)</b>(?:</a>|</font>): ?(.*?)</dt><dd> *(.*?)(?:</dd>|<br />)#mik

前処理:
# 後ろガラガラが多すぎてエラーになるので除去
s#<option.*?</option>##igk

696名無しさん:2012/07/26(木) 21:18:50
>>695
ありがとうございます
無事変換できました

697名無しさん:2012/07/27(金) 14:17:42
ログ速また変わりました?
>>691では変換できませんでした
http://logsoku.com/thread/engawa.2ch.net/poverty/1343043861/

ほんといたちごっこなのかもしれませんが

698 ◆/vmukiyuzw:2012/07/27(金) 20:53:31
>>697さん
微妙にまた形式が変更されたようですね。

htmltodat的に影響ある部分としては、
・全般的に改行コードが変更されている(LF→CR)
 →これにより今まで前処理で取り除けていたガラガラが取り除けなくなった
・レス番号の表現が<a name="レス番号">→<a id="レス番号">に変更されている
・名前欄の色付けが<font color=green>→<span style="color:green">に変更されている
 →これにより今までの正規表現ではレスにマッチしなくなった

これらをふまえ以下のように変更してみました。

前処理:
# ガラガラを適当に除去
## spanタグはレス内で使われるようになったので除去はやめる
#s#<span(.|\s)*?</span>##igk
s#<script(.|\s)*?</script>##igk
s#<div(.|\s)*?</div>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
s#(ID:)<a href=.+?>(.+?)</a>(.*?)\[\d+.+?\]#$1$2$3#igk
# 後ろガラガラの除去
s#<tr (.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

正規表現:
m#<a id="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<span style="color:green">)<b>(.+?)</b>(?:</a>|</span>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s<br />.*?</dd>#mik


一応互換性を確かめるためこのスレに今まで貼られたログ速のログで確認してみましたが
特に問題なく変換できるようです。

699 ◆/vmukiyuzw:2012/07/28(土) 00:56:07
× 今まで貼られたログ速のログで
○ 今まで貼られたログ速のURLで

しかし、htmltodat側で正規表現等変更しても過去のログURLにアクセスして問題なく
dat変換できるということは、HTMLが静的なものでなくリクエストの都度動的に生成されて
いるということな訳です。
ということはその元になるdatを保持しておられることもほぼ確実なわけで。

であればゴニョゴニョ・・・えーっと今なんか微妙な時期ぽいんでやめときますか。

700名無しさん:2012/07/28(土) 01:12:12
なるほど

701697:2012/07/28(土) 05:07:43
>>698-699
ありがとうございます!
変換できました

ログ速、っていうか過去ログサイト全般、
恩恵を受けている身としては、うーんどうにか…って感じではあります

702名無しさん:2012/09/11(火) 13:31:16
本日からだと思いますがログ速で>>698-699のやり方でも変換出来なくなってしまいました
申し訳ないんですが一度ご確認お願いできますでしょうか
自分のやり方や認識が間違ってたらすみません

703 ◆/vmukiyuzw:2012/09/11(火) 21:58:32
>>702さん
改行コードがまた変更されたような・・・
あと改行の位置がいくらか変更されているようです。

実は今まで貼っていたログ速用の正規表現には一箇所バグ(というか私の単純ミスです;)
があったのですが、上の変更によりそれが顕在化してしまったという状況のようです。

あと、改行位置の変更により、前処理の一部(「〜回発言」を取り除く処理)に影響が出て
マッチしなくなってしまったのでこれも修正しました。

前処理:
# ガラガラを適当に除去
## spanタグはレス内で使われるようになったので除去はやめる
#s#<span(.|\s)*?</span>##igk
s#<script(.|\s)*?</script>##igk
s#<div(.|\s)*?</div>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
s#(ID:)<a href=.+?>(.+?)</a>(.*?)\s*\[\d+.+?\]#$1$2$3#igk
# 後ろガラガラの除去
s#<tr (.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

正規表現:
m#<a id="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<span style="color:green">)<b>(.+?)</b>(?:</a>|</span>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s*<br />.*?</dd>#mik

704名無しさん:2012/09/12(水) 09:11:28
>>703
迅速なご対応ありがとうございます!!
問題なく無事変換できました!!

705名無しさん:2012/09/23(日) 01:42:17
以前その115の変換を教えて貰ったのですが、
「一行が長過ぎるか、正規表現が正しくないようです」
と出て上手く行きません。
何か変わったのでしょうか?
http://viva2ch.net/avi/1204285809.html
よろしくお願いします。

706 ◆/vmukiyuzw:2012/09/23(日) 20:23:59
>>705さん
>>663>>664>>666で試してみたのですが
「変換行:1001」と表示されるのにエラーが出ますので、変換は出来てるけど
後ガラガラの影響でエラーが出る状況のようです。
調べてみると、最後のほうに延々続くamazonへのリンクの形式が変更されてました。
(URLエンコードされた形式に変更されている)

これを受けて前処理を修正するととりあえずエラーは出なくなりましたが、よく見ると
ID周りのタグが若干変更されたようで、変換結果に不要なタグが残るようになったので、
これも修正しました。合わせて正規表現も微調整しました。

あとスレタイに元々のスレタイにはない余分なものが付くようになったようなので
これを除去する処理も追加しました。


正規表現:
m#<a name="(\d+)">\d+</a><span>(.+?) ?\[(.*?)\] ?(.+?) ?<p> ?(.*?) ?</p>#mik

前処理:
# スレタイ補正
s#(<title>)(.*?)\s\S*?@\S*?(\S*?)(</title>)#$1$2$3#ik
# 後ガラガラ除去(amazonを直接指定するのはイマイチだが・・・)
s#<li><a href.*?</li>##igk
s#a href="/r\?u=http%3A%2F%2Fwww.amazon[\S]*? title=.*?</a>##igk
s#<img .*?>##igk
# これは不要かもしれないがブラウザによってはうまく動かない可能性があるので念のため
s#<br />#<br>#igk
# 日付とIDの間の不要なタグを除去
s#</span><span># #igk
s#</span>##igk

変換結果式:(メール欄逆転)
$2<>$3<>$4<>$5<>


>>663>>665のviva2chのURLでも問題なく変換できることを確認しました。

707 ◆/vmukiyuzw:2012/09/23(日) 22:58:33
ああタイプミス・・・
大した影響はないでしょうが前処理の5行目

s#<a href="/r\?u=http%3A%2F%2Fwww.amazon[\S]*? title=.*?</a>##igk

にしてください(頭の"<"を忘れた)

708名無しさん:2012/09/25(火) 00:38:47
◆/vmukiyuzwさんありがとう。
溜まってたの10ほどちゃんと変換されました。

本当にありがとう。<(_ _)>

709名無しさん:2012/10/04(木) 15:17:21
みみずんにあるまちBBSのログ変換ができなくなりました
>>398>>617を使っても「1行が長すぎるか、正規表現が正しくないようです。」
が出て変換できません

変換したいのは
http://hokkaido.machibbs.com/bbs/read.pl?BBS=hokkaidou&amp;KEY=1032742284
http://hokkaido.machibbs.com/bbs/read.pl?BBS=hokkaidou&amp;KEY=1027087237
です

直接datを指定して落ちてきたのをJaneView(121002)のログフォルダに入れると
「ここ壊れてます」になってしまうので、変換でいきたいのですが

710 ◆/vmukiyuzw:2012/10/04(木) 20:53:21
>>709さん
まず、こういう場合はできればみみずんでのURLを書いて欲しいです。
まちBBSの過去ログURLを書かれてもこちらでみみずんでのURLに読み替えないと
アクセスできません^^;

ということで、
http://hokkaido.machibbs.com/bbs/read.pl?BBS=hokkaidou&amp;KEY=1032742284

http://mimizun.com/log/machi/hokkaidou/1032742284/

で調べてみました。

datを直接落とすと壊れるというところが気になったので、まず

http://mimizun.com/log/machi/hokkaidou/1032742284.dat

を落として調べてみたのですが、あれ?微妙にdatの形式が違う・・・
(各行先頭にレス番が付加されている)
経緯の程はわかりませんが、2chのdatについてはこういうことはないので
(でないとgetlog.wsfとか正常動作しないですよね)、まちBBSについてだけ
以前からそうなのかな?

とりあえず、datの違いはレス番の有無だけなので、わざわざhtmlから変換するより
datの先頭を切り飛ばしたほうが簡単かな?若干トリッキーな使い方ですが。
あぼーんがあるとその行が存在しなくなるという多少の難点はあるようですが
透明あぼーんを補うにして特に困ることはないような。

---------------------------------------------------------------------
(URL欄にはhtmlでなくdatの方のURLを入力)

前処理:
# 1行目最終フィールドからスレタイを生成
s#^(\d+<>.*?<>.*?<>.*?<>.*?<>)(.*?)\n#<title>$2</title>\n$1#ik

「透明あぼーんを補う」にチェック

正規表現:
m#(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>#mik
----------------------------------------------------------------------

あぼーんがあると変換警告が出ますが気にしなくていいです。

711 ◆/vmukiyuzw:2012/10/04(木) 20:55:11
ちなみにhtmlからの変換も考えてみました。
あら?>>398>>617の時とは相当異なる形式にはなってますが
これもさして難しくはないような。
(htmlの形式が整理されて正規表現を当てやすくなってる)

正規表現:
m#<a name="(\d+)">.*?<span class="handle">(?:<A HREF="mailto:(.*?)">)?(.*?)(?:</A>)?</span>:(.*?)</div><div class="res">\s*(.*?)\s*</div>#mik

<br />タグが使われているので専ブラの種類によっては
前処理に

s#<br />#<br>#igk

を入れる必要があるかもしれません。


まあお好きなほうで。

712 ◆/vmukiyuzw:2012/10/04(木) 20:58:20
>>710には

変換結果式: (メール欄逆転)
$2<>$3<>$4<>$5<>

も必要でした。失礼。

713709:2012/10/04(木) 23:32:17
>>710
ああ、申し訳ありません、みみずんのURLを貼ったつもりで間違えてしまいました
>>710
でdatから変換すると名前欄が[なまら名無し]になりました
>>711
で問題なく変換できました
ありがとうございます

714名無しさん:2012/10/13(土) 15:42:04
こんにちは。

以下のurlを>>683の処理で行わせたのですが、ヘッダーの並びがおかしくなって正しく表示できません。

http://yomi.mobi/read.cgi/hato/hato_sato_1312860520/

正しく変換するにはどうすればいいでしょうか?
よろしくお願いします。

715 ◆/vmukiyuzw:2012/10/13(土) 18:36:32
>>714さん
>>683の記述に漏れがありました。

変換結果式: (メール欄逆転)
$2<>$3<>$4<>$5<>

が必要でした。

>>683の元質問(>>682)のリンク先
http://yy14.kakiko.com/test/read.cgi/mirror/1158402994/756n
には書いてあったのですが、これへの補足のつもりで書いたので
漏れてしまったんだと思います。

716名無しさん:2012/10/13(土) 23:01:41
>>715
ありがとうございます。
変換されました。
さらに2chのdatらしくするため、

変換結果式:のメール欄逆転を
$2<>$3<>$4<> $5<>

と修正しアンカー削除のチェックを外したところ、
アンカーの部分が何も変換されずyomo.mobi〜と残ってしまいました。
あれこれ試したところ

後処理
# 安価のリンクを正しく補う
s#<a href="http://yomi\.mobi/read\.cgi/(\w+)/(\w+)\_(\w+)\_(.*)>#<a href="../test/read.cgi/$3/$4>#igk

を複数セット(6セット分)入れたところ綺麗に変換されました。

もしかして安価の数によって、さらに後処理を入力する必要がありますか?

717 ◆/vmukiyuzw:2012/10/13(土) 23:32:45
>>716
何をしたいのかいまいち理解出来てないかもしれませんが。

> と修正しアンカー削除のチェックを外したところ、
> アンカーの部分が何も変換されずyomo.mobi〜と残ってしまいました。

アンカー削除のチェックを外す必要は基本的にありません。
後処理で何とかしようとされた点はアンカー削除をONにしていれば
うまく処理してくれるはずなので、何故そうしようと考えられたのかわかりません。

yomi.mobi〜のリンクが残ってしまうことへの対処は
>>683の後半に書いてあることでできるはずです。
(省略された「http://を補う・・・とともにyomi.mobiへのリンクも外してます)

お使いの専ブラがなんなのか分かりませんが、大抵の専ブラでは
レスアンカーへのリンクとかURLへのリンクは自動で補ってくれるんです。
htmltodatでのアンカー削除機能はそれを前提につけています。

718名無しさん:2012/10/14(日) 05:05:26
>>717
出来るだけ2chで生成されるdatの形にしたいということですよ。
ちょっとしたこだわりです。

なんにせよ、必要なdatは手に入れることができたので感謝します。
ありがとう。

719 ◆/vmukiyuzw:2012/10/14(日) 22:22:45
>>718
まあこだわりというのは人それぞれなんで別にいいと思いますけど
htmltodatとしてはアンカー削除のチェックを外すのはあまり推奨できません。
なので、それによっておそらく生じるであろう諸々の面倒なことについては
できれば自助努力で対処いただきたく思います。

まあ充分なスキルをお持ちのようにお見受けするのでこんなこと書いてるんですが。

720名無しさん:2012/10/21(日) 20:26:25
その56:ログ速(http://logsoku.com/)は仕様の変更があったのでしょうか?
dat化したいURL:http://logsoku.com/thread/kohada.2ch.net/auto/1259980092/
以前の正規表現などの設定では、dat化が不可能になってしまいました。

恐縮ですが、また助けていただけたら幸いです。
よろしくお願いいたします。

721 ◆/vmukiyuzw:2012/10/21(日) 22:29:47
>>720さん
>>703で試してみたのですが、ID周りの仕様が結構変更されているようです。
一見変換自体は成功したように見えるのですが専ブラで読ませると
不要なタグが残ってIDへのリンクがうまくいかなくなる状態になりました。
ID周りの前処理のみ修正しました。


前処理:

# ガラガラを適当に除去
## spanタグはレス内で使われるようになったので除去はやめる
#s#<span(.|\s)*?</span>##igk
s#<script(.|\s)*?</script>##igk
s#<div(.|\s)*?</div>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)
# ID周りが変更されたので修正
#s#(ID:)<a href=.+?>(.+?)</a>(.*?)\s*\[\d+.+?\]#$1$2$3#igk
s#<span class="id_search_btn"><a .*?>(ID)</a></span>(:)<a .*?>(.*?)</a>((.|\s)*?)\[.*?\]#$1$2$3$4#igk
# 後ろガラガラの除去
s#<tr (.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

正規表現: ※変更なし

m#<a id="(\d+)"></a>\s*(?:<a href="mailto:(.+?)">|<span style="color:green">)<b>(.+?)</b>(?:</a>|</span>)\s*:\s*(.*?)\s*</dt>\s*<dd>\s*(.*?)\s*<br />\s*<br />.*?</dd>#mik

722名無しさん:2012/10/22(月) 16:18:05
>>721 ◆/vmukiyuzwさま
何時もながら、親切な対応ありがとうございます。
早速、使用させていただきます!
ありがとうございました。

723名無しさん:2012/11/05(月) 16:54:52
ログ速が仕様変更したようで変換出来なくなっていました。
申し訳ありませんが、対応していただけたら嬉しいです…

724 ◆/vmukiyuzw:2012/11/05(月) 20:27:20
>>723さん
今回はかなり変更されてたのでちょっと驚きました。

とりあえずは、レスの形式自体が大きく変更されてるので
正規表現はほぼ書き直しになりました。
メール欄の形式も変わったので、
変換結果式「メール欄逆転」が必要になりました。(←重要!)
あと、以前はなかったtimeタグが追加されてるので除去したり
スレタイに余分なものが付くようになったので補正したり
まあそんなところです。
(timeタグは指定方法が多分間違ってるぽいのでまた変更されるかも)


前処理: ※長くなってきたので不要になった行を削除
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラを適当に除去
s#<script(.|\s)*?</script>##igk
s#<style(.|\s)*?</style>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<span class="id_search_btn"><a .*?>(ID)</a></span>(:)<a .*?>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# 投稿日前後のtimeタグの除去
s#<time .*?>##igk
s#</time>\s( ID:)?#$1#igk
# 後ろガラガラの除去(ちょっと修正)
s#<tr(.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式: ※メール欄逆転
$2<>$3<>$4<>$5<>

正規表現:
m#<article id=.*?>(\d+).*?<span .*?><b>(.+?)</b></span>\[(.*?)\] :.*?:(.*?)<div class="comment">(.*?)\s*<br />\s*<br />#mik

725名無しさん:2012/11/16(金) 15:56:52
>>724
誠に申し訳ありません、返信が遅れてしまいました。
変換を確認致しました!
いつも迅速な対応に感謝します

726 ◆/vmukiyuzw:2012/11/25(日) 00:46:20
バージョンアップしました(0.8.18)
 ・バッチファイルやスクリプトから動かすための機能を追加。
 ・UTF-8→SJISの変換にnkf.exeを使うようにした。

まずバッチコマンド化についてですが、以前から構想はあったんですが
>>492で一旦頓挫していて、最近またやる気になってなんとかやってみました。
htmltodat単独では意味がなくバッチファイルやスクリプトから
起動されること前提の機能です。

大雑把な仕様としては、
・起動時の引数を最大3個指定できる
・1つ目の引数はURL、これが指定された場合、URLの項目に値をセットして起動します。
・2つめの引数はパラメータファイル名、この仕様は後述します。
 これが指定された場合、正規表現・前処理等の項目に値を自動でセットし
 HTML取得→変換まで行います。
・3つめの引数は出力datファイル名、これが指定された場合、変換結果をそこに出力し
 htmltodatは終了します。

パラメータファイルの仕様は、

正規表現=read.cgi7.00?
変換結果式=メール欄逆転
・・・
 
のような形式で各項目に設定する選択項目を指定して列挙します。
また、
 
前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラを適当に除去
s#<script(.|\s)*?</script>##igk
・・・
 
みたいな感じでサポート掲示板に書かれてるようなものをそのまま記述する方式でも
可能です。
サンプルでsample.prmというのをつけてみたので参考にしてください。

727名無しさん:2012/11/25(日) 00:49:29
>・バッチファイルやスクリプトから動かすための機能を追加。
キタ━━━━━━(゚∀゚)━━━━━━ !!
すごく嬉しいです!

728 ◆/vmukiyuzw:2012/11/25(日) 01:04:48
次にUTF-8→SJIS変換ですが、
>>605>>613あたりでやろうとしてこれも頓挫していたものですが
自分の開発環境の中だけでやるのはどうも難しそうなので
外部コマンド(nkf.exe)を叩くことにしました。

◆◆◆◆◆◆◆◆◆◆ 重要 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
これにより、今回バージョンアップされる方は
zipに同封しているnkf.exeもインストール(htmltodat.exeと同じフォルダに
解凍)することが必要になります。
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

なお、この変更によりUTF-8→SJIS変換が必要な場合DOSウィンドウが
一瞬出てしまうと思いますが気にしないでください。

nkfというのはかなり古くから使われてる文字コード変換プログラムですが
その分枯れてる(←バグが出尽くしてるという意味)のではと考え
採用しました。
「〜」が「?」に化けるのとかは正しく変換できるのは確認したのですが
実際にhtmltodatから化けそうなサイトにアクセスして確認していない
(どこが化けるサイトかわからないので^^;)のが若干不安な部分です。

729 ◆/vmukiyuzw:2012/11/25(日) 01:25:44
あと余談になりますが、バッチコマンド化の3つめの引数(出力ファイル名)についてですが
getlogみたいに取得済みのファイルと比較して行数が多ければ上書き、とかしようと思うと
結局一旦一時ファイルに保存するケースが多くなるのかなという気はしてます。
V2Cでのgetdatスクリプトはファイルではなくdatの内容自体を返す仕様になってますし
こういう場合も一時ファイルに保存して読み返すことになるような。
まあその辺は呼び出す側でよろしくやってください(てなげやりかよ!w)

730 ◆/vmukiyuzw:2012/11/25(日) 01:34:39
>>726
> バージョンアップしました(0.8.18)

0.8.19の間違いですね^^;
長いことバージョンアップしてなかったんでコピペ直すの忘れてました・・・

731 ◆/vmukiyuzw:2012/11/25(日) 20:44:35
こっちに書いたほうが良かった内容かもしれないので一応リンク。
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/133

732 ◆/vmukiyuzw:2012/11/26(月) 00:42:25
バージョン0.8.19 公開一時停止します。
理由:スクリプトから呼び出して動かす際に一部うまく動かない機能が発覚したため。

目に見える現象としては、正しい過去ログでなく別のスレの過去ログを取得してしまったり
することが発生すると思います。
原因となる箇所は特定出来てるのですがどう直したらいいものか現時点では
ちょっとわからないので時間がかかるかもしれません。
(スクリプト経由でなくコマンドプロンプトから動かすと問題なく動いてしまったりする
のがこれまた厄介)

というわけで、663さん他、スクリプトをすでに作ったもしくは今から作ろうとしていた方々、
申し訳ないですがしばらくお待ちいただきたく。

733 ◆/vmukiyuzw:2012/11/26(月) 19:56:00
バージョンアップしました(0.8.20)
 ・UTF-8→SJISの変換にnkf32.dllを使うよう変更。

前バージョンでnkf.exeを使うようにしたのですが不具合があったため
nkf32.dllを使うように変更しました。

◆◆◆◆◆◆◆◆◆◆ 重要 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
これにより、今回バージョンアップされる方は
zipに同封しているnkf32.dllをインストール(htmltodat.exeと同じフォルダに
解凍)することが必要になります。

※OSが98系(98,98SE,Me)の場合は「98用」以下のnkf32.dllをインストールしてください。
※前バージョン(0.8.19)には不具合があるため使用しないでください。
※nkf.exeは不要になりましたので削除してしまってかまいません。
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆


不具合の原因ですが、正直なところ正確にはわかっていません。
以下推測ですが、nkf.exeという外部プログラムを実行するということは
内部的にプログラムの終了待機をする必要があるわけです。
ですが、スクリプトからhtmltodatを呼ぶとなるとこちらでも終了待機が
必要となり、制御がぶつかってしまったんではないかと。
結果としてnkf.exeが実行されないまま処理してしまっていました。
dllの呼び出しにすればもちろん内部プロセスで実行されるので
問題は解消したと考えられます。

ちなみに、dll呼び出しのほうがプログラムの実装としては簡単だったんです。
でも、nkf32.dllが98系とNT系の2バージョンあるため、インストールの際の
混乱をできれば避けたいと考えました。

しかしまあ2つの変更タイミングがたまたま同じでよかった。
別々のタイミングだったら原因特定にもっと手間取ったかもしれません。

734 ◆/vmukiyuzw:2012/11/26(月) 20:25:12
あと仕様面で若干補足。

パラメータファイルで第2引数まで指定して(この場合自動終了はしない)
HTML取得→変換まで行った場合、HTMLプレビューが表示されません。
意図してやってることではなく、結構強引に動かしてるところがあるので
結果的にそうなってしまったというところです。
まあプレビュー欄は変換結果が正しいかどうかの確認用の機能なので
パラメータ指定で動かす場合は(パラメータが正しい前提で動作するので)
表示されなくても特に問題なし、とさせて頂きます。

とはいえ、サイト側の仕様変更により、変換エラーが出る場合もあると
思います。
htmltodatを直接起動した場合は変換エラーはエラーダイアログで表示
されますが、パラメータ指定で自動で動かす場合エラ-ダイアログを
出すことが出来ません。
(この場合、出力ファイルが作成されないことになると思います)
何が起こったかわからなくなると困ると思ったので、こういう場合は
error.txtというファイルにエラーダイアログと同じ内容を出力するように
しました。変換がうまくいかないときは参照してください。

735exp:2012/11/27(火) 00:30:22
0.8.20の書庫ファイルが破損しているようです。
ご確認お願いします。

736 ◆/vmukiyuzw:2012/11/27(火) 00:38:44
>>735さん
ダウンロードしなおして確認しましたが別に破損してないですよ。
他の方から動作確認したとの報告ももらってますし。
何が問題なのかこちらでは見当つきかねます。

737 ◆/vmukiyuzw:2012/11/27(火) 19:04:05
http://yy14.kakiko.com/test/read.cgi/mirror/1353918147/6
> 受信オプション→HTTPヘッダの追加 
> と
> 変換オプション→透明あぼーんを補う
> はprmファイルで指定出来ないのでしょうか。

現状、readmeに書いてる5項目
(正規表現、URLの変換、前処理、変換結果式、後処理)
しか指定できません。

当面使うニーズが多そうなものに限って実装し(いきなり全部やって
バグってたら悲惨なので)、他はニーズが出たらやろうという考えでした。
まあぼちぼちとやりますんで気長にお待ちください。

738 ◆/vmukiyuzw:2012/11/28(水) 00:56:26
バージョンアップしました(0.8.21)
 ・バッチコマンド化機能でパラメータファイル内で前バージョンではサポートして
  いなかった項目を追加。

>>737を受け、受信オプション・変換オプションで設定できる項目は
一応全てパラメータファイルで設定できるようにしてみました。
チェックボックスでオンオフするような項目については

透明あぼーんを補う:
true

のような形式で指定してください(オフにしたい場合は false を指定)

739 ◆/vmukiyuzw:2012/12/01(土) 18:48:24
バージョンアップしました(0.9.0)
 ・正規表現ライブラリを、オリジナルのbregexp.dllからbregonig.dllをリネーム
  したものに変更。
  これに伴い、変換エラーチェックの閾値を変更。

◆◆◆◆◆◆◆◆◆◆ 重要 ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
これにより、今回バージョンアップされる方は
zipに同封しているbregexp.dllを再インストール(htmltodat.exeと同じフォルダに
解凍して上書き)することが必要になります。
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆

bregonig.dllを使うと、オリジナルのbregexp.dllでは「fatal error」が出てしまうようなケースでも
エラーにならず処理してくれます。
で、どこかのタイミングで差し替えようと考えていたのですが今回やることにしました。
これにより、今までhtmltodatが異常終了してしまっていたようなケースが改善され
プログラムの安定性が向上したと思います。

また、fatal errorになるリスクが軽減されたので、今まで「正規表現が正しくないようです」
などのエラーにしていた閾値(読み込み行数およびバッファサイズの上限値)を
これまでよりかなり大きめに変更しました。
これで何がよくなるかというと・・・一番うれしいのは、前処理でのガラガラ除去が不要になる
(完全にはなくならないかも・・少なくとも今までよりは減らせる)ことで、処理時間の短縮に
つながるでしょうし、ターゲットのサイトが仕様変更された場合の対応も楽になると思われます。

740名無しさん:2012/12/04(火) 06:36:00
その120とその127でログ見つかったのですが変換式が載っておりません。
どなたかお願いします。

その120
http://2chland.net/software/1183880331.html

その127
http://software.log2.me/1183880331.html

741 ◆/vmukiyuzw:2012/12/04(火) 19:21:40
>>740さん
「その120」 2chland.net については>>684-685で一回やったんですけどね。

まあ若干形式が変換されてるようですし、せっかくバージョンアップしたことでもあるので
Ver.0.9.0仕様であらためて考えてみますかね。
(まだバージョンアップされてない場合は>>733,>>739のdllの導入を欠かさないこと)

あと、「その127」 software.log2.me については 2chland.net と形式がほぼ同じですね。
同じ方が運営されてるのかな?
以下のものが両サイトで共通で使えると思います。


前処理:
# スレタイ補正
s#(<title>)(.*?) ?(.*?)(</title>)#$1$2$3#ik
# 日付とIDの間に何かあると邪魔なので除去
s#</span><span># #igk
# <br />タグに対応していない専ブラへの対応
s#<br />#<br>#igk
# ガラガラ除去がないとやっぱスッキリするな〜

変換結果式: (メール欄逆転)
$2<>$3<>$4<>$5<>

正規表現:
m#<li><span>()(.*?) ?\[ ?(.*?) ?\] ?(.*?)</span><p> ?(.*?)\s*</p>#mik

742740:2012/12/04(火) 22:52:54
>>741さん
その120、その127ともにdat変換確認しました。

その120>>684-685の見落とし申し訳なく・・・。
その127はスレ検索したのですぅ。

ありがとうございました。<(_ _)>

743 ◆/vmukiyuzw:2013/01/05(土) 19:13:11
バージョンアップしました(0.10.0)
 ・パラメータファイルを読込・保存するための機能を追加。
 ・パラメータファイル内で、一行しか入力できない項目に複数行の指定をすると
  挙動がおかしくなる不具合を修正。
 ・スクリプト等から起動した場合の動作を若干修正。
 ・その他ショートカットキーの漏れ等を微修正。

バッチコマンド化機能で指定するパラメータファイルの内容を
手動で読込・保存する機能です。
もともとは別のニーズから導入を決めたものですが、これを使うと
今まで正規表現や変換オプションの各項目で個別に指定・管理していた項目を
一つのファイルにまとめて管理することが出来るようになるので
楽になる面があると思います。

使い方はreadmeの397行目あたりから読んでもらって実際触ってもらえれば
すぐ分かると思いますが、ちょっとだけ書いておくと
・ファイルの読込は「読込」ボタンを押してダイアログで選んでもいいですし
 ファイルをドラッグ&ドロップしても読み込めます。
 読み込んだ内容は読み込んだ時点で各項目に反映されます。
・このサポートスレでレスしたような内容(例えば>>741のようなもの)を
 そのままコピペしても使えます。
 この場合、各項目への反映は自動では行えないので、「適用」ボタンを
 押して下さい。もしくは一旦保存して読み込み直してもいいと思います。

744 ◆/vmukiyuzw:2013/01/06(日) 17:30:38
>>743
バージョン0.10.0に不具合が見つかったので公開を中止します。
(現在ダウンロードページでは前バージョンを公開しています)

既にダウンロードされた方、新機能の「パラメータファイルの読み書き」には
不具合がありますので、当面使用をお控え願います。
(それ以外の今まで使えていた機能には問題ありません)

745 ◆/vmukiyuzw:2013/01/06(日) 19:56:55
バージョンアップしました(0.10.1)
 ・パラメータファイル読み書き機能の不具合を修正。

今回は不具合対応のみです。
前バージョン(0.10.0)には不具合があるので使用しないでください。

仕様の詰めが甘いまま実装してしまったので実際使ってみると
すぐ穴が見つかってしまいました。失礼しました。

746 ◆/vmukiyuzw:2013/01/12(土) 19:47:09
バージョンアップしました(0.10.2)
 ・パラメータファイル読み書き機能の不具合を再修正。

今回も不具合対応のみです。

不具合と言うか仕様の問題なのですが、前バージョンでは
パラメータファイル読込時、指定を省略した項目があった場合、
・テキスト項目の場合→空白
・チェックボックス項目の場合→チェックOFF状態
になるようになっていました。
ですが、チェックボックス項目はそれぞれ既定の値が違うため
(例えば「アンカー削除」は既定値ONになっている)、
無条件で上書きしてはまずいケースがあるかもしれないと考えました。
よって、チェックボックス項目の指定を省略した場合は
既定値を上書きしないように変更しました。

(テキスト項目については省略時は今までどおり空白。
これを変更したい場合は明示的に指定すると思われるので)

747名無しさん:2013/01/26(土) 12:35:14
いつもいつもお世話になっています。<(_ _)>

その134の変換おねがいできますでしょうか。
http://2ch.hork.info/res/kilauea.bbspink.com/hgame2/1358507907/

バージョンアップもありがとうございます。

748 ◆/vmukiyuzw:2013/01/26(土) 22:10:29
>>747さん
一応、下の正規表現等で変換は可能。
ですが、以下の状況によりあまりお勧めできかねます。

まず、該当のスレはレス1004までありました。これにまず違和感。
実況とかで最後に書き込みが集中するような状況だとたまにあるのですが
このスレはそういうわけではない。
(bbspinkはほとんど見ないんでそういうものなのかな?と最初は思ったのですが)

datに変換して専ブラに読ませてみると破損スレとの警告が出ます。
調べてみると434レス目が壊れた状況になります。
なんかレスアンカーにも違和感があるし変だなと思って前後を調べてみると、
どうやら418以降のレスが402からの繰り返しになってる模様。
(投稿日時が巻き戻って同じレスが繰り返されている)
で、壊れてる434レス目のところで数レスが省略されてる模様。

まとめていうと、418以降のレスは元々のスレとは間違ったレス番で並んでると思われる
ということです。たまたまのトラブルかもしれませんが、このサイトのログ収集処理自体が
バグってる可能性もあると思います。
htmltodatの機能としてdatに変換することは可能ですが、元データが不正なものを
変換してもレスアンカーとかはめちゃくちゃになります。
それでも意味があるかはご自分でご判断ください。


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://2ch.hork.info/res/$1/$2/$3/#

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#(?:</h1>|\t)(\d+):?&nbsp;:<span class="postname">(.*?)</span>:()(.*?)<br />\s*<(?:h2|p) class="resbody">(.*?)(?:</h2>|</p>)#mik

749747:2013/01/27(日) 01:42:49
>>748さん

datになったものならメモ帳で編集できるんで、その6aの829以降を補えれば
いいんでやってみます。

ありがとうございました。<(_ _)>

750749:2013/01/27(日) 02:09:03
”一部しかマッチしていないようです” というエラーメッセージダイアログが
出て、変換はタイトル行だけでした。
URLの変換は、何か設定いるのでしょうか?

751750:2013/01/27(日) 02:34:47
正規表現をJANEからhtmltodatへコピペすると、エラーは先の
”一部しかマッチしていないようです” ですが、
IE,FireFoxからコピペすると、”一行が長過ぎるか、正規表現が正しくないようです”
に変化しました。
何がいけないのだろう?

752751:2013/01/27(日) 02:42:48
JANEからコピペすると何やら160とかに変化するようです。
m#(?:</h1>|\t)(\d+):? :<span class="postname">(.*?)</span>:()(.*?)<br />\s*<(?:h2|p) class="resbody">(.*?)(?:</h2>|</p>)#mik

753名無しさん:2013/01/27(日) 02:54:07
JANEから書き込むと元にもどるのねこれ。
全角ならどうか?
m#(?:</h1>|\t)(\d+):?&#160

754 ◆/vmukiyuzw:2013/01/27(日) 03:06:00
>>750さん
マッチさせたかったのは&nbsp(実際には半角)だったのですが、
掲示板に書き込む時にただの半角スペースに変換されちゃうのを忘れてました。
以下にしてみてください。

ちなみにURLの変換は、ミラー変換機で得られる
http://2ch.hork.info/res/kilauea.bbspink.com/hgame2/1358507907/
のURLを使う場合は別に必要ないのですが
http://kilauea.bbspink.com/test/read.cgi/hgame2/1358507907/
(2chやbbspinkの生のURL)を使いたい場合のために記述しているものです。
省略しても問題ないですが書いておいたほうが多分便利でしょう。
(663さんから書き添えて欲しいと要望がありました)


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://2ch.hork.info/res/$1/$2/$3/#

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#(?:</h1>|\t)(\d+):?.nbsp;:<span class="postname">(.*?)</span>:()(.*?)<br />\s*<(?:h2|p) class="resbody">(.*?)(?:</h2>|</p>)#mik

755 ◆/vmukiyuzw:2013/01/27(日) 03:32:07
ちなみにその134(http://2ch.hork.info/)についてですが
適当にスレを探して見ていたところやっぱ同様の巻き戻り現象がときどきあるようですね。
少なくとも、htmltodat変換の対象としてはあまり使用をお勧めできないですね。
(何かおかしくても発見するのが結構難しい)

756名無しさん:2013/01/27(日) 17:17:32
◆/vmukiyuzwさん、変換できました。

最後までログ保持してるミラーがその134しかないようなので
なんとか切り貼りしてやってみます。
ありがとうございました。<(_ _)>

757756:2013/01/27(日) 17:57:49
メモ帳だと破損ログになりましたが、WZ EDITORでコピペしたところ
正常なdatになりました。
本当にありがとうございました。<(_ _)>

758名無しさん:2013/05/11(土) 11:50:43
こんにちは、いつもお世話になってます
ログ速が仕様変更したので改変してみました
コンマ秒に対応したみたいですね
--------------------
Proxyを使う:
false

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラを適当に除去
s#<script(.|\s)*?</script>##igk
s#<style(.|\s)*?</style>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href=.* class="id_search_btn">(ID)</a>(:)<a [^>]+>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# 後ろガラガラの除去(ちょっと修正)
s#<tr(.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

dat変換をしない(前処理のみ行う):
false

アンカー削除:
true

beコード削除:
false

透明あぼーんを補う:
false

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<article id=\"([^\"]+).*<span class=\"n?em\"><b>(.+?)</b></span>\[(.*?)\] :(.*?)<div class="comment">(.*?)</div></article>#imk

-------------------

759名無しさん:2013/05/11(土) 12:01:40
すみません。>>1のガラガラが除去できてなかった
# ガラガラを適当の除去の項目に
s#</div><div style="text.*<div class="ad_area"></div>##igk
を追加してください

760名無しさん:2013/05/11(土) 12:15:00
>>759は無しで。</article>を加えたのがまずかっただけでした

正規表現:
m#<article id=\"([^\"]+).*<span class=\"n?em\"><b>(.+?)</b></span>\[(.*?)\] :(.*?)<div class="comment">(.*?)</div>#imk

761名無しさん:2013/05/11(土) 13:48:56
自動判別でのUTF-8→SJISの段階で半角カタカナが全角カタカナになっちゃいますね
その他、アンカーの相対リンクへの置換とHTMLリンクの除去は2chブラウザの動作には影響ないのでそのままにしてあります

なんども投稿して申し訳ないですが、スペースの調整が甘かったのでもう一回修正しました
---------------------------------
Proxyを使う:
false

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラを適当に除去
s#<script(.|\s)*?</script>##igk
s#<style(.|\s)*?</style>##igk
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href=.* class="id_search_btn">(ID)</a>(:)<a [^>]+>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# 後ろガラガラの除去(ちょっと修正)
s#<tr(.|\s)*?</tr>##igk
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

dat変換をしない(前処理のみ行う):
false

アンカー削除:
false

beコード削除:
false

透明あぼーんを補う:
false

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<article id=\"([^\"]+).*<span class=\"n?em\"><b>(.+?)</b></span>\[(.*?)\] :(.*?)<div class="comment"> (.*?)</div>#imk

-----------------------------------------------

762 ◆/vmukiyuzw:2013/05/12(日) 16:36:24
>>758-761さん
考えていただきありがとうございます。
何点かコメントさせてください。

1.
> 自動判別でのUTF-8→SJISの段階で半角カタカナが全角カタカナになっちゃいますね

気づいてませんでした。これはまずい仕様ですね。
nkfの仕様のようで、詳しい経緯は不明なのですが、推測するに
「ネット(という呼び名ですらなかった頃?)で半角カナ使うなボケェ!」
な時代から使われてるプログラムらしいので、半角カナは全角に置き換える動作が
デフォルトなのかもしれません。
対応策は考えますが、多分また時間かかりそうなので当面nkfを使わない元の仕様に戻す
ことになると思います。(これはこれで問題あるのですが・・・)

2.
正規表現および前処理を考えていただいたのはありがたいのですが、

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

も付けたいところです。
ログ速のURLからではなく、2chの生のURLから(スクリプトを経由して)
htmltodatでログ速を変換しているという方がいらっしゃいますので。

3.
前処理の「ガラガラ除去」はVer0.9.0以降基本的に不要になりましたので
記述を削除してしまっていいと思います。>>739参照。

4.
これは以前から気づいていて、次にログ速の仕様変更があったら反映させようと
思っていたものなのですが。
レス内にニコニコ動画やyoutubeへのリンクが貼られていると、ログ速では
サムネイル画像のタグを挿入してしまいます。なのでこれらのタグを除去しないと
ブラウザによってはそのまま表示されてしまいます。
(表示されても構わない、という方は除去しなくてもいいかもしれませんが)
よって、前処理に以下を追加したいです。

# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;


1は当面どうしようもないとして、2〜4を反映させていただいたパラメータの内容は次に。

763 ◆/vmukiyuzw:2013/05/12(日) 16:38:36
>>762続き

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラ除去はVer0.9.0以降不要になったので削除
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href=.* class="id_search_btn">(ID)</a>(:)<a [^>]+>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<article id=\"([^\"]+).*<span class=\"n?em\"><b>(.+?)</b></span>\[(.*?)\] :(.*?)<div class="comment"> (.*?)</div>#imk

764 ◆/vmukiyuzw:2013/05/12(日) 18:48:30
バージョンアップ(というか実質ダウンですが --;)しました(0.10.3)
 ・nkf32.dllの使用を中止し、UTF-8→SJISの変換を0.8.18以前の方式に戻す。

>>762で書いたとおり、半角カタカナが全角に変換されてしまうのは問題が大きいと思われるため
nkf32.dllの使用を一旦中止し以前の変換方式に戻すことにしました。
(当面、ログ速では「〜」が「?」に化けることはないようなので重大な問題はないだろう・・・)

今後の対応としてはnkf32.dllでの回避策を探しつつ他に使えそうなdllも探すということになるかと
思います。ちょっと検索したら有望そうなのを見つけたんですがまだ調べてみないとなんともです。

765 ◆/vmukiyuzw:2013/05/12(日) 19:31:41
すみません、個人的にここ数日多忙で、そこに不具合が見つかったので焦ってしまったようです。
nkf32.dllでの回避策がどうやら見つかったので対応しようと思います。
また修正しますのでしばらくお待ちください。

766 ◆/vmukiyuzw:2013/05/12(日) 20:10:12
バージョンアップ(?)しました(0.10.4)
 ・nkf32.dllの使用を再開。

nkf32.dllでの回避策をテストして問題なさそうだったので再修正しました。
前のバージョン(0.10.3)は誰もダウンロードしてないようなので
幻のものとして忘れてください^^;

767名無しさん:2013/05/13(月) 08:32:13
乙。こいつはありがたいや

768名無しさん:2013/05/28(火) 16:58:09
ログ速で1行が長すぎるか、正規表現が正しくないようです。
とでてログ変換できなくなってしまったんですがどこかコピペミスったかな…
みなさんは問題なく変換できていますか?

769 ◆/vmukiyuzw:2013/05/28(火) 20:34:53
>>768さん
若干ですがまた仕様変更されたようですね。
以下ので多分いけると思います。


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラ除去はVer0.9.0以降不要になったので削除
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href=.* class="id_search_btn".*?>(ID)</a>(:)<a .*?>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<article id=\"([^\"]+).*<span class=\"n?em\"><b>(.+?)</b></span>\[(.*?)\].*?:(.*?)<div class="comment"> (.*?)</div>#imk

770768:2013/05/29(水) 14:58:31
変換出来ました!
素早い対応ありがとうございました。

771名無しさん:2013/05/29(水) 23:04:11
私も変換できました
素早い対応ありがとうございます

772 ◆/vmukiyuzw:2013/06/06(木) 18:25:48
ログ速がまた仕様変更されたようですね。
途中の改行が一切取っ払われてベタッとしたHTMLになって形式的には結構変更されたようですが
htmltodatはまあ一応そういうのも想定して作ってますんで・・・

以下のようなので多分いけると思います。
>>758-761さんの考えてくださった部分を自分好みに一部修正してます。ご容赦を)


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラ除去はVer0.9.0以降不要になったので削除
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_search_btn".*?>(ID)</a>(:)<a .*?>(.*?)</a>((.|\s)*?) ?\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル除去
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<article id="(\d+)".*?<span class="n?em"><b>(.+?)</b></span>\[(.*?)\].*?:(.*?)<div class="comment"> (.*?)</div>#imk

773 ◆/vmukiyuzw:2013/06/11(火) 00:30:17
気がつくとログ速また仕様変更されたようですね。
今回は微妙な変更のようですが。
以下のようなので多分いけると思います。


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラ除去はVer0.9.0以降不要になったので削除
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_search_btn".*?>(ID)</a>(:)<a .*?>(.*?)</a>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<div id="(\d+)".*?<span class="n?em"><b>(.+?)</b></span>\[(.*?)\].*?:(.*?)<div class="comment"> (.*?)</div>#imk

774名無しさん:2013/06/11(火) 20:19:37
対応ありがとうございます
無事変換できました

775 ◆/vmukiyuzw:2013/06/20(木) 20:09:20
つい最近気づいたんですが、ログ速のログには若干の問題があります。
2chの元のスレ中に2ch内のスレへのURLリンクが書かれていると、ログ速側に取り込む際に
勝手にログ速内のログへのURLリンクに変換してしまう、というものです。
これは前からそうなのかどこかの時点で仕様変更されたのかはちょっと把握してませんが・・・

具体的には、元のスレ中に例えば以下のようなURLリンク

http://toro.2ch.net/test/read.cgi/tech/1362913813/

が書かれてあったとすると、ログ速側に取り込まれると

http://www.logsoku.com/r/tech/1362913813/

に変換されてしまいます。
(その昔、今はなき「にくちゃんねる」が同じようなことをしてたと記憶してます)

これをhtmltodatで処理する場合、前処理等で元のURLリンクに逆変換したいところなのですが
困ったことにサーバに関する情報(この例では「toro.2ch.net」)が失われてしまっています。
単純に元の2chへのリンクに戻してやることはできないのです。

何か逃げ手はないかと考えてはいるのですが汎用的ですっきりしたものはなかなか難しそうです。
(そもそも人によっては特に問題視されない場合もあるかもしれませんし)
当面ログ速については上のような事象があるのでご注意ください、位しか言えない感じです。

776 ◆/vmukiyuzw:2013/06/21(金) 22:02:20
それはともかく、またログ速が微妙に仕様変更されてるようで。
ID周りが微妙に変更されたようです。以下のようなのでいけると思います。


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ガラガラ除去はVer0.9.0以降不要になったので削除
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_.*?>(ID)</a>(:)<a .*?>(.*?)</a>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# ログ速内へのURLリンクの強引な逆変換・・・Jane系でしか使えないと思われるのでとりあえずコメントアウト
#s#http://www\.logsoku\.com/r/(.*?)/(\d+)/#http://dummy.2ch.net/test/read.cgi/$1/$2/#ig
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<> $5 <>

正規表現:
m#<div id="(\d+)".*?<span class="n?em"><b>(.+?)</b></span>\[(.*?)\].*?:(.*?)<div class="comment"> (.*?)</div>#imk

777 ◆/vmukiyuzw:2013/06/26(水) 19:23:16
ここで書いたことが影響したとも思えないのですが
ログ速で >>775 のような変換はしないように仕様変更されてるようです。

(<a href=〜での参照先はログ速内リンクになっているが
URLの書き込み自体の変換はされていない)

htmltodatとしては、考慮しないといけない厄介な事象がなくなって
良かったと言えると思います。

# (オリジナルのdatに近づけるため)変換オプションの「アンカー削除」を
# あえてオフにしているという方もいらっしゃるようですが、そういう方は
# ちょっと気をつけないといけないかもしれません。

778名無しさん:2013/06/30(日) 20:22:44
無事変換できました
ありがとうございます

779名無しさん:2013/07/24(水) 01:00:03
ログ速が仕様変更したかもしれません
変換ができなくなってた

780 ◆/vmukiyuzw:2013/07/24(水) 20:06:09
>>779さん
また微妙に変更されてるようです。
(要素間の半角スペースの数が変わったとかそんなレベルの変更)
# logsokuさんのツイート見てると、htmltodatからは意識しない部分も
# 結構こまめにいろいろ弄られてるようですが

以下のようなのでいけると思います。
(今回特に変更されてない部分についても今後を考え多少予防線を張ってみた)


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_.*?>(ID)</a>(:)<a .*?>(.*?)</a>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?><div.*?><div.*?></div></div><img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#<div id="(\d+)".*?<span class="n?em">.*?<b>(.+?)</b> *</span>.*?\[(.*?)\].*?:(.*?) *<div class="comment">(.*?)</div>#imk

781名無しさん:2013/07/25(木) 20:53:51
無事変換できました
忙しい中の対応ありがとうございます

782 ◆/vmukiyuzw:2013/08/03(土) 14:18:40
またまたログ速に関してなのですが。

youtubeのサムネイル埋め込みまわりの仕様が多少変更されたらしく、
今までの記述では前処理でフリーズしてしまうケースが見つかりました。

とりあえず、以下のようなので当面大丈夫だと思います。


URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_.*?>(ID)</a>(:)<a .*?>(.*?)</a>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?>.*?<img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#<div id="(\d+)".*?<span class="n?em">.*?<b>(.+?)</b></span>.*?\[(.*?)\].*?:(.*?) *<div class="comment">(.*?)</div>#imk

783名無しさん:2013/08/03(土) 14:31:37
おっつおっつ

784 ◆/vmukiyuzw:2013/08/08(木) 23:06:35
バージョンアップしました(0.11.0)
 ・あまり使わないと思われるコントロールを削除(ダブルクリックで復活可能)。
 ・パラメータファイルで「コメント:」を使えるようにした。
 ・その他制御の漏れ等を微修正。


前に某所で操作がごちゃごちゃしてるという意見が出ていて、自分でもちょっと思っていたので
使用頻度が少なそうな機能を削ってみました。見た目がかなりすっきりしたと思います^^;
もっとも、削ったものを使ってる方もいらっしゃるでしょうから、画面のどこか何もないところを
ダブルクリックすると削除したものが復活します。(再度ダブルクリックでまた消える)
まあどれだけ意味あるか分かりませんが気まぐれにやってみました。


あと、prmファイルの内容にコメント(何の理由で修正したとかの記述等)を入れたいと思っていたので
(今まででも前処理の一部とかに無理やり入れることはできたのですが)独立で入れられるように
してみました。まあ大層な話ではなくてprmファイル中に

コメント:

と書くとそれ以降何行でも(空行が挟まってはダメ)コメントが書けて保持できるというだけのものです。
(今までは対応するフィールドを持っていなかったので保持できなかった)
一応ファイルの先頭に書くことを想定してます。複数箇所に分けての記述はできません。
これもかなり自己満足の機能ですがとりあえず。

785 ◆/vmukiyuzw:2013/08/20(火) 22:29:03
バージョンアップしました(0.11.1)
 ・変換オプションに「プレビューを表示しない」を追加。
  これを指定すると画面右側のプレビュー欄が表示されなくなるが
  変換速度は速くなる。

これはまあ「必要なさそうなものは削ろう」第二段と言えるのかな?
プレビュー欄を必要としてる人がどれだけいるだろうという試みです。
変換速度は明らかに速くなったので、スクリプト等から使っておられる
方にはかなり良くなったんじゃないかな?

# 本当のことを言うと、プレビュー欄を表示しなくなるよりも
# 「dat変換結果」の下の「読込行:〜なんたらの部分の表示を削るほうが
# 速度的にははるかに効果があったのです・・・
# 今後何か変更する際には考慮しないといけないな

786名無しさん:2013/08/28(水) 17:21:19
この設定で「1行が長すぎるか正規表現が正しくないようです」と表示され動かないのですがログ速は仕様変更などしたのでしょうか?
http://ideone.com/sT6hZ6

787 ◆/vmukiyuzw:2013/08/28(水) 19:14:39
>>786さん
貼っていただいたコードを確認しましたが、正直言って
結構情報が古いです。
このスレで言うと>>761-763 あたり、大体3ヶ月くらい前の状況でしょうか。

このスレを「ログ速」というワードで検索して頂くといいのですが
それ以降もログ速の仕様変更は何度かあり、とりあえず正規表現等の記述の
現状の最新は>>782です。

また、htmltodat本体のバージョンアップも行われているのでご注意ください。
(最新の更新は>>785
現状どのバージョンを使われてるかにもよりますが、正規表現等の記述では
最新バージョンでの使用を前提としている場合があります。
特に、nkf32.dll と bregexp.dll の2つのdllについては最新であるかどうか
確認したほうがいいかもしれません。

788名無しさん:2013/08/28(水) 21:34:59
すいません、ありがとうございます。
htmltodatでlogsokuのログを正常にログ変換できました。

789 ◆/vmukiyuzw:2013/08/28(水) 22:46:06
せっかくなのでこういうのを貼っといてみよう


コメント:
ログ速変換用-20130828
「プレビューを表示しない」をONにして高速化してみたバージョン

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<a href="/id.*? class="id_.*?>(ID)</a>(:)<a .*?>(.*?)</a>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?>.*?<img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

プレビューを表示しない:
true

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#<div id="(\d+)".*?<span class="n?em">.*?<b>(.+?)</b></span>.*?\[(.*?)\].*?:(.*?) *<div class="comment">(.*?)</div>#imk

790 ◆/vmukiyuzw:2013/10/12(土) 21:24:18
offlaw2から過去ログを取得するのを考えてみました。
まあこれはhtmltodat使う必要性自体あまりないかもですが何かの参考に。
(「URLの変換」のとこを弄ればみみずんやunkarにも使える)


コメント:
# offlaw2経由でdatを取得してみる試み

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/offlaw2.so?shiro=kuma&bbs=$2&key=$3#

前処理:
s#^(.*?<>.*?<>.*?<>.*?<>)(.*?)\n#<title>$2</title>\n$1\n#ik

プレビューを表示しない:
true

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m#()(.*?)<>(.*?)<>(.*?)<>(.*?)<>#mik

791 ◆/vmukiyuzw:2013/11/07(木) 21:22:58
現在 htmltodat で利用している bregexp.dll は bregonig.dll をリネームして使っているもので
バージョンでいうと 1.50(perl 5.8 互換)のものを利用しています。
bregonig 自体はこれより上のバージョンのものも公開されているのですが、
・Unicode 対応のものとなっており、Shift-jis しか対応してない(UTF-8も読めるが内部的に
 Shift-jis に変換してから処理している)htmltodat ではあまり意味ないかなと思った
・htmltodat ごときでそんな高等な正規表現機能が必要だろうかと思った
・dll自体のサイズが相当大きくなってしまうので同封して配布するにはちょっとためらいがあった
という点であえて最新でないバージョンを採用しています。

ですが、bregonig や perl のドキュメントを読んだり実際動かして試したりしてると
正規表現のより新しい機能を使いたい場合もあるんじゃないかと思うようになってきました。

当面のところこのスレでは上記のバージョン 1.50 前提でサポートしたいと考えますが
もっと新しい機能も使ってみたいという方は
http://homepage3.nifty.com/k-takata/mysoft/bregonig.html
から、より新しいバージョンの物をダウンロードして使ってみてください。
(このサイトに書かれてるドキュメント自体も非常に参考になります。
バージョン毎の機能の違いも記述があります)
現状の最新はバージョン 3.05(perl 5.14 互換)のようです。

792 ◆/vmukiyuzw:2013/11/10(日) 22:35:54
バージョンアップしました(0.11.2)
 ・「変換オプション」-「dat変換をしない(前処理のみ行う)」をONにした場合、
  前処理の結果を「dat変換結果」欄に表示するようにした。
  (もちろんそれをそのまま保存することも可能)
 ・「正規表現」欄内で改行ができるようにし、それをprmファイルに保存・読み出し
  できるようにした。

これらはプログラムの変更としては全然大した話ではないんですが、
使い勝手としてはかなり影響がある可能性があります。

まず1点目から。
>>790のようなのを書いてみて思ったのが、
もともとのソースがdat形式もしくはそれに近い形式のものは
無理やり htmltodat の変換メイン処理を通さなくても
そのまま単純に保存できたほうがいいケースもあるんじゃないかと。
今までも前処理中でwコマンドというのを使って保存することはできたのですが
元々デバッグ用というかイレギュラーな使い方ですしスクリプト等から使うことも難しいので
もっと普通に保存できるルートを付けてみた、というところです。

この機能は前処理のデバッグをするのにも結構役立つんです。
以前、某所で
「前処理の結果をwコマンドでいちいちテキストエディタで確認するのは面倒。
簡易的に表示できないか」
とのリクエストを受けた事があったんですが、
めぐりめぐってそれがやっと実現しました(遅すぎ^^;)
# 現在自分では bregonig.dll の機能の細かい確認のために使ったりもしてます

さて、2点目についてはちょっと長くなるんで次レス以降で。

793 ◆/vmukiyuzw:2013/11/10(日) 22:49:25
>>792続き)

正規表現が長くなったり複雑になった場合に、
途中で改行やコメントを入れられたら読みやすくなるのにと思ったことがありました。

v0.9.0から正式採用した bregonig.dll
(htmltodat では互換性のため「bregexp.dll」にリネームして利用している)では
perl互換の「拡張正規表現」というものがサポートされていて
オプションに「x」を足すと、正規表現の途中に任意の改行や、
インデント等の為のスペースを入れることができるようになっています。
具体例としては以下のような感じ。
(ログ速の正規表現での例です。>>789での正規表現の記述と意味的には同じなので
見比べてみてください)

正規表現:
m`
(?# レス番号) <div\ id="(\d+)".*?
(?# 名前) <span\ class="n?em">.*?<b>(.+?)</b></span>.*?
(?# メール欄) \[(.*?)\].*?
(?# 投稿日・ID) :(.*?)\s*
(?# レス内容) <div\ class="comment">(.*?)</div>
`imkx

こんな書き方ができるようになったりします。
この例では正規表現の最後、`imkx の「x」が拡張正規表現オプションです。
拡張正規表現オプションを指定しないと途中改行等は使えないことにご注意ください。
(正規表現の可読性や保守性を上げるために役立つと思うのですが、
上の例自体はその目的に実際に合ってるのかはわかりません^^;今後の研究課題です)

この例のような書き方は bregonig.dll 自体でサポートされてるものなので
今回のバージョンアップをしなくても「正規表現」欄に記述して動作させる事はできます。
ただ今まではこのような途中改行された正規表現をprmファイルに保存・読み出しする事ができなかったので
実用上あまり意味がありませんでした。
それをできるようにしたのが今回のバージョンアップです。

この機能を利用する際には、いくつか考慮しないといけない事項があります。
やや長くなるので次レス以降で説明します。

794 ◆/vmukiyuzw:2013/11/10(日) 23:12:44
>>793続き)

1.コメント問題

拡張正規表現では「(?#・・・)」の形式でコメントを入れる事ができます(>>793の例参照)。
実は、拡張正規表現でなくてもこの形式でコメントを入れる事はできるのですが、
改行の無い一行の正規表現中にコメントを入れても逆に可読性を損ねるのではないかと考えます。
途中改行が可能な拡張正規表現でこそ意味があると思います。

ところで、今まで htmltodat では正規表現のデリミタに慣習的に「#」を使っていました。
(「m#〜#〜」みたいな形式で)
一般的にはperl形式相当の正規表現ではデリミタには「/」が使われる事が多いと思うのですが
htmltodat では検索の対象がhtmlテキストということで
(かつ、htmlテキストではタグ内に「/」が多用されるのでぶつかっちゃうため)
いちいちエスケープする手間を省くため「#」を使っていたわけです。
実はデリミタ文字は対になってさえいれば何でもよいので、
「#」でなければいけないわけではありません。
(「#」を使っていたのは、あまりhtml中には登場しないだろうというのと、
あとは個人的な好みです)

ところが、「(?#・・・)」の形式でコメントを入れる場合、この「#」とぶつかってしまいます。
ではデリミタの方を変えるのがよさそうです。
前レスの例では「#」の代わりに「`」(バッククォート)を使ってみました。
(「`」は正規表現上でもhtml上でも他とぶつかる可能性が少なくてよさげなので
今後使っていきたいと思います)

あと、本家perlでは拡張正規表現の改行した途中の各行の後や行間に
「#・・・」形式のコメントが使えるのですが、bregonig.dll でも
この形式のコメントも使えるようです。
(これは bregonig のドキュメントには明記されていないようなのですが
実際試してみると使える)
こっちのほうが読みやすいという人もいるでしょう。
以下の例は、実際には半角スペースで「#」の位置を揃えてるんですが、
この掲示板での書き込みでは連続した半角スペースは省略されるので
不ぞろいになって見えると思います。
(この省略がなければ個人的にはこちらの方式を推したい気もするのですが)

正規表現:
m`
<div\ id="(\d+)".*? # レス番号
<span\ class="n?em">.*?<b>(.+?)</b></span>.*? # 名前
\[(.*?)\].*? # メール欄
:(.*?)\s* # 投稿日・ID
<div\ class="comment">(.*?)</div> # レス内容
`imkx

(次レスに続く)

795 ◆/vmukiyuzw:2013/11/10(日) 23:28:43
>>794続き)

2.半角スペース問題

今まで htmltodat の正規表現を記述する際には「<span class=・・・」みたいな書き方を
無造作にしていたと思うのですが、拡張正規表現を使う場合には
半角スペースは無視されてしまいます。
(インデントのためやコメントのための半角スペースを許す必要があるので)

上の例だと「<span」と「class」の間の半角スペースが無視されるため
そのままでは正しくマッチしなくなります。
半角スペースにマッチさせたい場合は「\s」等で代替する必要があります。
(「<span class=・・・」は「<span\sclass=・・・」等にする必要がある)

半角スペースを「\」でエスケープする「<span\ class・・・」みたいな形式も
許されるので、こちらのほうがまだ読みやすいかもしれません。
>>793での例はこちらを使いました)


3.regexps.txt問題

これは互換性の問題としてやや重要な話です。

途中改行を許す拡張正規表現の形式は、
従来から htmltodat において正規表現の一覧を管理していた regexps.txt ファイルには
保存・読み出しする事ができません。

regexps.txt はもともと一行に一つの正規表現を保存する事を前提として設計していた機能なので
ここを変えるのはちょっと難しかったのです。
(というか正直には、言語のライブラリにあるiniファイル管理機能をそのまま使ってただけなので
拡張しようにも手が出せないってとこです)

prmファイルの形式であれば(改行あり前提の機能なので)もちろん保存できますし、
現状ではprmファイルでの管理のほうがいろいろと便利だと思われますので、
今後はこちらでの利用を推していきたいということでここの互換性の問題には目をつぶることにしました。
でもまあ、最初 htmltodat を使い始められる際には正規表現一覧から入られる場合も多いでしょうから
(readme に自分で「正規表現一覧から使え」って書いちゃってますしね^^;)
何らかの考慮が必要かなとは思っています。

(次レスに続く)

796 ◆/vmukiyuzw:2013/11/10(日) 23:36:17
>>795続き)

当面の問題として、ユーザーの方が皆即座にバージョンアップしてくれるわけではないでしょうから
このスレで記述する正規表現等は旧バージョン準拠のものにすると思います。
ただ、前記「コメント問題」の考慮としてデリミタ文字には「`」を使ったり、
「半角スペース問題」の考慮として裸の半角スペースは使わず\s等で代用したりは
していきたいかなと思ってます。
で、まあちょっとずつ新バージョン対応のものも出していきたいかなと。


あと一点、さほど重要ではないかもしれませんが補足があります。
「正規表現」欄の m〜 形式の正規表現は「x」オプションにより途中改行ができるようになりましたが
「前処理」「後処理」等で指定する s〜 形式の正規表現は「x」オプションを使っても
途中改行は現状できません。

これは処理の都合なのですが、「正規表現」欄の正規表現はそのまま bregexp.dll に丸投げしているのに対し、
「前処理」等の正規表現は一行ごとに htmltodat 側で解析してから bregexp.dll に投げる方式になっており
この解析の方式を変えないと途中改行のある正規表現は使うことができないのです。
「前処理」等の場合はもともと一行ずつ複数の正規表現が順番に指定される事を想定しており、
一つの正規表現が途中で改行する事を想定して作っていないということです。
この仕様は今後改良する可能性はありますが、現時点ではあまり必要性は感じていないというところです。
(現状でも行間にコメントを入れるのは可能なので)

# 全然大したことないバージョンアップの説明に5レスも要してしまった・・・
# 自分の文章力の無さを嘆いています

797 ◆/vmukiyuzw:2013/11/17(日) 23:20:34
v0.10.0(>>743)以降の、prmファイル読み書き機能サポート以降
htmltodatの基本的な使い方が従来とは違う面が出てきていると思うのですが
まだちゃんと説明していなかったと思うのでここで一度説明しておきます。

例えば、(まあ最近ではログ速の例が多いのですが)
「サイトの仕様変更があった?」とか「ここのログを変換するには?」とかの質問があった場合
大体回答として>>789のようなレスが返されます。
まずこのレスをコピーしてください。
(レス全体でもいいが「コメント:」と書かれた行以降だけでもOK)

次にhtmltodatを起動し、下のほうにある「prmファイル(R)...」ボタンを押します。
「prmファイルの読み書き」というウィンドウが開きますので、
「prmファイルの内容」という欄上で右クリ「すべて選択」またはcntl+Aで全選択し
先ほどコピーした内容を貼り付けます。
貼り付けたら「適用(A)」ボタンを押します。
これで正規表現・変換オプション等の項目が一度に設定されます。
従来、一項目ずつ入力していたものがこれでかなり楽になると思います。

貼り付けた内容をファイルに保存するには「保存(S)...」ボタンを押します。
ダイアログが出るので適当な場所に適当な名前(例えば「ログ速.prm」)で保存します。
次回から使うときはこのウィンドウを開いてから「読込(L)...」ボタンで読み込めます。
(ファイルから読み込んだときは「適用(A)」ボタンは不要)

後は変換したいログのURLを入力して「HTML取得(G)」ボタンを押します。
「取得即変換」がONになっているはずなのでdat変換まで行います。
あとは従来どおり「dat保存(S)...」ボタンを押して保存します。

以前の基本的な使い方ではまずHTMLを取得してから正規表現を選んで・・・
みたいな手順だったと思うのですが、prmファイルの形式でパラメータが
指定されている場合、まずそれを指定してからHTMLを取得する、というのが
現在の仕様上では便利だと思われます。

798 ◆/vmukiyuzw:2013/12/10(火) 19:23:57
予告されてたことですがしたらば掲示板のドメインが変更されました。
旧:jbbs.livedoor.jp
新:jbbs.shitaraba.net

htmltodatとして対応することは特にないのですが
http://mukiyu.g.ribbon.to/
からこの板にリンクをはってたんで、そこだけ修正しました。

799 ◆/vmukiyuzw:2014/03/08(土) 18:42:55
状況が流動的なので現状を正確に把握できてるかわからないのですが。

2chの過去ログがdat落ちしたものであってもhtmlでは取得できるようになっているようです。
かなり過去のものはofflaw2でもdatが読めませんが通常のブラウザではhtmlで読めたりします。
であればhtmltodatにも出番があるのでは・・・
正規表現「read.cgi7.00?」で変換はできるんで以下にprmファイルバージョンを。


コメント:
2chのログでhtml化されているがdatに残っていないものを変換。
元datに近づけるためアンカー削除はオフに

アンカー削除:
false

正規表現:
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>)#mi

800 ◆/vmukiyuzw:2014/04/05(土) 22:45:33
バージョンアップしました(0.11.3)
 ・表示の不具合を微修正

今回は、プログラムのコード自体は一切弄っていません。
メインのPC環境がWindows8.1に移行したので、そちらで動作確認していたところ
一部の機能で表示に若干の不具合が出たためそれを修正しました。
(ウィンドウの枠サイズを修正した程度)

また、今回から開発環境自体をWindows8.1上に移行しています。
開発ツールは今までと同じなので基本的にexeの互換性は問題ないはずなのですが
何かありましたらご報告を。(一応XPでも動作確認はしています)

801 ◆/vmukiyuzw:2014/04/26(土) 21:21:17
>>799 を若干修正。
URLの変換を追加。
2chの過去ログ(html)から取得するのだからURL変換は必要ないかと最初思っていたのですが、
専ブラの外部コマンド等から呼び出す場合、
引数のURLに意図した以外の形式のものが渡ってくる可能性があると分かったので、
無駄な情報が渡らないよう変換プロセスを通したほうがいいと考えました。


コメント:
2chのログでhtml化されているがdatに残っていないものを変換。
元datに近づけるためアンカー削除はオフに

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

アンカー削除:
false

正規表現:
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>)#mi

802名無しさん:2014/10/01(水) 12:53:49
◆/vmukiyuzwさんへ報告ですが
htmltodat0.9.0以降、Windows2000sp4で起動した場合、GUIがこの様↓になってしまっています
(GUI下部の機能が非表示、外周のウィンドウ自体を広げたり狭めても表示されず)
http://light.dotup.org/uploda/light.dotup.org79528.jpg

それと13/11/26(火) 19:05:15「・ート後処理.prm」は正常なファイルなのでしょうか?
このファイルのみ破損しており解凍できません
よろしくお願い致します

803 ◆/vmukiyuzw:2014/10/01(水) 19:25:48
>>802さん
> (GUI下部の機能が非表示、外周のウィンドウ自体を広げたり狭めても表示されず)

バージョン0.11.0から、使用頻度の少ないと思われる機能を非表示にしました。
画面のどこか何もないところ(プレビュー欄の右上など)を
ダブルクリックすると表示されるようになります。
>>784参照。

> このファイルのみ破損しており解凍できません

圧縮時に破損してしまったようです。失礼しました。
圧縮しなおして差し替えました。

804 ◆/vmukiyuzw:2014/10/01(水) 20:22:28
> それと13/11/26(火) 19:05:15「・ート後処理.prm」は正常なファイルなのでしょうか?

まあ、そのファイル(正しい名前は「ソート後処理.prm」)は
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/165-
で実験して遊んでた時にできた派生物が紛れ込んじゃっただけなので
無視してもらっても構わないと思います。

805名無しさん:2014/10/01(水) 20:42:17
ダブルクリックの件はreadme.txtのわかりやすい所に書いといて欲しかったです(一括変換は割とよく使う為)
ソート後処理.prmは問題無く解凍できるようになりました
ありがとうございました

806 ◆/vmukiyuzw:2014/10/01(水) 21:02:38
>>805
意外でしたが一括変換にはまだニーズがあるんですね。
次のバージョンアップでは復活を検討します。

807 ◆/vmukiyuzw:2014/10/19(日) 20:13:28
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/198,206

↑で実験しているのは、Fiddlerっていうツールを使って
ローカルプロキシ経由でのhtmltodat的処理を試しているものですが
htmltodatの「read.cgi7.00?」の正規表現をベースにスクリプト化したものを
使っています。
で、このスクリプトを弄っているうちに、read.cgiからのhtmlを
生datとほぼ一致するdatに変換できるようになりました。
ので、その成果(というほどのものでもないか)をこちらにもフィードバックしておきます。
>>799,801 への修正という形になります。


コメント:
# 2chのログでhtml化されているがdatに残っていないものを変換。
# 元datに近づけるためアンカー削除はオフにし
# 後処理で不要なもののみ削除する。

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

アンカー削除:
false

プレビューを表示しない:
true

後処理:
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# BE周りの処置
s#<img src="http://(img\.2ch\.net/.+?)">#sssp://$1#igk
# 以下はhtmltodatの内部処理に組み込まれているので不要
#s#<a href=.?javascript:be\((\d+)(?:,\d+)?\).*?>\?(.*?)</a>#BE:$1-$2#igk

正規表現:
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>)#mi

808名無しさん:2014/12/13(土) 03:49:50
ttp://geass2chlog2.web.fc2.com/main/1149586971.html
上のようなページをdat化するにはどうしたらよいのでしょうか
よろしければ教えてください

809名無しさん:2014/12/13(土) 04:12:31
>>808
そのページの先頭にある『元のスレッド』の文字列上を右クリしてリンクをコピー
http://anime.2ch.net/test/read.cgi/anime3/1149586971/
これをhtmltodatに投げればおk

専ブラで過去ログ取得の設定がしてあればそのままのリンクをアドレスバーに貼り付けるだけでも可なんだけど
もしかするとボードデータの更新を怠っていたり板一覧取得先のURLが死んでたりすると
http://hayabusa6.2ch.net/test/read.cgi/anime3/1149586971/
という現行鯖のリンクに切り替わらないのでそんな時もhtmltodatがあれば大丈夫

810名無しさん:2014/12/13(土) 05:39:10
あ、ごめん
完全補完ということなら2ch過去ログパラメータじゃ無理だわ

811808:2014/12/13(土) 17:56:11
2005年6月頃から2007年1月頃までの間のアニメ板のログが全て見れない状態なんですよね
なのでこの間のログは「みみずん」や「2ちゃんねるの国」等のミラーサイトから取得しているのですが全て揃っているわけでもなく…
ttp://geass2chlog2.web.fc2.com/main/index000.htmlのように2chに似た形でログを残してくれているサイトもいくつか存在しているので
これらをうまくdatに変換できないかと思い質問しました

812 ◆/vmukiyuzw:2014/12/13(土) 19:38:10
>>808さん
そのサイトについては以下のようなのでいけると思います。
一応prmファイルの形式で書いてますが、前処理等はいらなさそうなので
従来の使い方(正規表現一覧に登録して使用)のほうが楽かもしれません。
その場合コメントは無視してください。


コメント:
# アニメ板過去ログ保存サイトgeass2chlog2.web.fc2.comの変換用
# 正規表現は「read.cgi7.00?」を修正したもので上位互換性あり

正規表現:
m#<dt.*?>\s*([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>)*\s?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>|<script)#mi

813名無しさん:2014/12/13(土) 20:42:35
>>812
無事変換できました
ありがとうございました

814 ◆/vmukiyuzw:2014/12/13(土) 23:00:10
>>809さん
多分、htmltodat-convert2をお使いでテストスレのほうに投稿くださった方ですよね?

> http://anime.2ch.net/test/read.cgi/anime3/1149586971/

このスレはうちの環境からはhtmltodat-convert2で>>807相当のprmファイルを使っても読めなかったです。
汎用ブラウザで開こうとしても「 あなたは間違った道を歩んでいます誠に申し訳ございません。 」
のエラーメッセージが返されます。

現状2ch.netではdatでは読めない過去ログでもread.cgi叩けば大抵読めるようですが
それでもやはり取れないログはあるようです。
一時期サーバが物理的に死亡して外部サイトからログを募集してたこととかありましたね。
あの辺のログは2ch.netのサーバには存在してないのかもしれませんね。

815名無しさん:2014/12/14(日) 00:13:52
>>814
件のスレは908レスまで取得できたんだけど何が違うんだろう

816 ◆/vmukiyuzw:2014/12/14(日) 00:50:38
>>815
>>808のログには1001レスまであるので、もしread.cgiから取得できるのであれば
こちらも1001レスないとおかしいですよね。
調べたらみみずんから取得できるログは908レスまでのようです。
Getlogコマンドとの併用辺りでどこかで勘違いがあるのでは。

817名無しさん:2014/12/14(日) 03:54:00
みみずん←ソレダ!!
Xeno本体内蔵のみみずん機能の切り忘れでした大変申し訳ない

818 ◆/vmukiyuzw:2014/12/27(土) 20:56:26
したらばの過去ログの取得方法が変更されたということなので
(旧URL:http://jbbs.shitaraba.net/カテゴリ/板番号/storage/スレッド番号.html
 新URL:http://jbbs.shitaraba.net/bbs/read_archive.cgi/カテゴリ/板番号/スレッド番号/ )

htmltodatで変換できるか確認してみたのですが、htmlの形式に変更はないようで
従来の正規表現「jbbs過去ログ」で変換可能なようです。

せっかくなんでこの際prmファイル化も考えておこうかなと思ったんですが
実はあんまりやる事がない・・・
旧URLから新URLへ飛ばすために「URLの変換」を指定するのかなと思ったんですが、
これはしたらば側でリダイレクトで飛ばしてくれるようなので
(でhtmltodatはリダイレクトを追尾するようになってるので)
当面これも指定する必要がなさそうなんです。
で、prmファイルをあえて作るなら以下の一行のみでOK。


正規表現=jbbs過去ログ

819 ◆/vmukiyuzw:2015/01/18(日) 22:59:05
2ch.netのread.cgiが返すhtmlの形式が微妙に変更されているようです。
最近導入されたCloudFlareの仕様なのか設定なのか、
メール欄をエンコードして難読化する機能があり(ボット等に収集され
スパムに利用されるのを防ぐためのものらしい)、今まで

<a href="mailto:sage">

みたいな形式でメール欄が表現されていたのが

<a href="/cdn-cgi/l/email-protection#abd8caccce">

みたいになります。
(全部のレスがそうなるわけじゃなく途中から元の形式に戻ってたりするのが
いまいちよくわからんのですが)

で、エンコード部分をデコードするのにはアルゴリズムがあるので
JavaScriptとか使えば難しくはなさそうですが
正規表現だけでやろうと思うとちょっと厳しそう。
てことでhtmltodat的に考えると現状で変換するのはちょっと無理かな・・・

んで、今後どうするかですが。
現状では>>807のprmファイルで変換すると<a href="/cdn-cgi〜のタグは
無視されるだけなので単にメール欄がないレスとして扱われます。
とりあえずこの現状で勘弁してもらえるか。
htmltodatの機能として対応するとなるとなかなか面倒そう。
一番うれしいのはCloudFlareの設定変えてもらってメール欄のエンコードを
やめてもらえるといいんですがね・・・2chサイドから見ると特にメリットもデメリットも
なさそうなんで望みは薄いかなぁ。

820 ◆/vmukiyuzw:2015/01/19(月) 21:10:48
>>819に関連して
2chのread.cgiのレスポンスが変更されてるので、ミラーしてるログ速なんかにも
影響でてるんじゃないかと思って調べてみたんですが
ログ速がうまくやってるのか特に影響はなかったみたいです。

ただ、ログ速のhtml形式がいつの間にか微妙に変更されていて
今までの記述ではうまくマッチしなくなってる
(エラーになるわけではないがdat中に不要なタグが混入する)
ようなので修正してみました。
正規表現に拡張形式を使ってみたのでhtmltodatのバージョン0.11.2以上で
使ってください。


コメント:
# ログ速変換用-20150119
# ID周りの変更に対応

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/thread/$1/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#<span class="id_color.*?>(ID)</span>(:)<span.*?>(.*?)</span>(.*?)\[.*?\]#$1$2$3$4#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?>.*?<img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

プレビューを表示しない:
false

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m`
(?# レス番号) <div\sid="(\d+)".*?
(?# 名前) <span\sclass="n?em">.*?<b>(.+?)</b></span>.*?
(?# メール欄) \[(.*?)\].*?
(?# 投稿日・ID) :(.*?)\s*
(?# レス内容) <div\sclass="comment">(.*?)</div>
`imkx

821 ◆/vmukiyuzw:2015/01/24(土) 01:28:00
バージョンアップしました(0.11.3)
 ・2chのCloudFlare採用によるメール欄の難読化をデコードするよう修正。
 ・Ver0.11.0で削除したコントロールのうち
  「一括変換」「subject.txt作成」を復活。

一点目は>>819で書いたことに関連してなのですが
対応策をいろいろ検討した結果、htmltodat内部に
デコード処理を取り込むのが当面いいかなと考え
そのように修正しました。
それ以外のエンコードロジックが出てきたらどうするんだとか
汎用性の面で問題はあるのですが、これに汎用的に
対処しようと思うとなかなか難しい面があって・・・
まあ当面対処すべきなのは1パターンだけですし
汎用性が要求されるケースが発生したらその時考えます。

で、若干の考慮事項があるのですが次スレで。

二点目は、>>805で「一括変換は使う」という方がいらっしゃったので
確かにまだニーズはありそうだなと復活させてみました。
「subject.txt作成」は「一括変換」を使う人には必要かもと思い
一緒に復活させました。

822 ◆/vmukiyuzw:2015/01/24(土) 01:36:20
>>821の関しての考慮事項です。
(バージョン番号間違えた。0.11.4です)

この変更は、>>819に書いたように

> <a href="mailto:sage">
> みたいな形式でメール欄が表現されていたのが
> <a href="/cdn-cgi/l/email-protection#abd8caccce">
> みたいになります。

となってしまうのを、元の"mailto:sage"に戻すためのものなわけです。

ところで、エンコードされた形式の
/cdn-cgi/l/の部分をハードコードするには気持ち悪かったのと、
内部処理的に、<a href="mailto:email-protection#abd8caccce">
みたいにmailtoの内容として表現されていると処理しやすい
というのがあったんで、前処理で変換してくださいという仕様にしました。
(形式が変わっても"mailto:email-protection#〜"の形式にすれば変換可能ということ)

これを含んでのread.cgiの変換prmは以下のように。


コメント:
# 2chのread.cgiからの出力を変換-20150124
# 元datに近づけるためアンカー削除はオフにし
# 後処理で不要なもののみ削除する。
# メール欄デコード処理対応を反映

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄デコードの前処理
s#(<a href=)"/cdn-cgi/l/(email-protection\#.*?">)#$1"mailto:$2#ikg

アンカー削除:
false

プレビューを表示しない:
true

後処理:
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# BE周りの処置
s#<img src="http://(img\.2ch\.net/.+?)">#sssp://$1#igk
# 以下はhtmltodatの内部処理に組み込まれているので不要
#s#<a href=.?javascript:be\((\d+)(?:,\d+)?\).*?>\?(.*?)</a>#BE:$1-$2#igk

正規表現:
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>)#mi

823 ◆/vmukiyuzw:2015/02/04(水) 00:46:45
バージョンアップしました(0.11.5)
 ・prmファイル作成時に、無駄な要素(デフォルトから変更していない
  チェックボックスの内容)が含まれないようにする。
 ・「HTMLソース」「dat変換結果」欄の内容をエディタで開く機能を追加。
  (それぞれの欄の右クリックから指定)

今回はまあ正規表現書いたりprmファイル作ったりする
開発サイドの人(ってほぼ私か^^;)向けの機能強化です。

一点目は、今まではprmファイルを作成しようとするときに
デフォルトから変更していないチェックボックスの情報も全部出力され
ちょっと冗長な状態になっていました。
これを、デフォルト状態から変更されていないものは出力しないよう
修正しました。
今までは実は目で見て削除していたんですがそれが多少楽になるかな
て感じです。

二点目は、これはかなり前からやりたかったことなんですが、
「HTMLソース」「dat変換結果」欄は表示するデータ量も多いので
もっと大きいウィンドウで表示したり自由に検索したりしたかったのですが
現状の機能の延長線では難しかったので、外部エディタでの表示による拡張を
することにしました。これにより正規表現等の作成が捗ることになると思います。
(現状でも私はエディタにコピペして作業することがほとんどだったので)

デフォルトでは、拡張子 .txt に関連付けられたエディタが起動します。
(関連付けを特に弄ってなければ普通はメモ帳になると思います)
好みのエディタに変更したい場合は、iniファイルで変更できるように
しました。配布ファイルにサンプルのhtmltodat.iniファイルを
同封しているので弄ってみてください。
(今のところ、エディタ側で編集してその結果を反映、とかはできません)

824 ◆/vmukiyuzw:2015/02/08(日) 12:21:57
バージョンアップしました(0.11.6)
 ・前バージョンの「エディタで開く」機能に不具合があったので修正。

今回は不具合修正のみです。
エディタによっては、htmltodatのインストールパスに空白を含む場合に
上手く起動できないケースがあったので修正しました。

自分の環境で使ってる時にはパスに空白を含まないとこで使ってるので
気づくのにちょっと時間かかりました。
今後も同様な問題は起こり得るんで気を付けないといけないですね。

825名無しさん:2015/03/15(日) 00:11:15
htmltodatByFiddler 1.03使わせてもらってます
JaneXeno 150312(Win7 64bit)で余裕で動きました
ありがとうございます

826名無しさん:2015/03/17(火) 21:25:36
htmltodatByFiddler1.03を使わせてもらってます。
質問です。
UAをMonazillaから以下に書き換えると全レス”ここ壊れてます”と出て、
レスを取得できません。
なんででしょうか?以下に書き換えてます。

(oSession.oRequest["USER-AGENT"].Contains("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"))) //専ブラ以外からのリクエストは変換しないほうがよさそう。Monazillaを名乗らない専ブラの場合は適当に変えて下さい

827名無しさん:2015/03/17(火) 22:01:35
>>826
OnBeforeRequest内でIEのUser-Agentに書き換えた上で、OnBeofreResponseのそのif文書き換えてるんだよね?

828 ◆/vmukiyuzw:2015/03/17(火) 22:14:18
>>826さん
UAを変更したいという話なら、修正個所はそこではなく、
OnBeforeRequest のほうに次の一行を足してください。

oSession.oRequest["USER-AGENT"] = "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";


お書きいただいたOnBeforeResponse のほうの判定ロジックは
現状あんまり意味ないと思うので外してくださっていいと思います。

if ((oSession.url.match(/(?:\.2ch\.net|\.bbspink\.com)\/test\/read/)) &&
(oSession.oRequest["USER-AGENT"].Contains("Monazilla"))) //専ブラ以外からのリクエストは変換しないほうがよさそう。Monazillaを名乗らない専ブラの場合は適当に変えて下さい

この2行は、以下に変更して下さい。

if (oSession.url.match(/(?:\.2ch\.net|\.bbspink\.com)\/test\/read/))

上のロジックを入れていたのは、Fiddlerがデフォルトでは汎用ブラウザのプロキシになっちゃうので
汎用ブラウザからread.cgiを見た時にdat変換されちゃうのはまずいかなと思っていたためです。
ですが、Fiddlerのオプションで「Act on system proxy startup」をオフにすれば
問題ないと分かったので、外して構わないと考えました。

829名無しさん:2015/03/17(火) 23:46:58
>>826-827
ありがとございます。
>>827に書き換えで出来ました。

830名無しさん:2015/03/17(火) 23:48:20
間違えました。
>>827-828
ありがとうございました。

>>828に書き換えで出来ました。

831名無しさん:2015/03/18(水) 19:53:36
2chブラウザ Jane Style Part117 [転載禁止](c)2ch.net
http://anago.2ch.net/test/read.cgi/software/1426520789/614

614 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/18(水) 18:50:16.69 ID:gSYCzAIq0
http://mukiyu.g.ribbon.to/
 htmltodat 0.11.6(910k byte)の中のhtmltodat.exe/bregexp.dll/ntf32.dllの3つと
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/
 htmltodat-convert2_20121221 (5k byte)の中のhtmltodat-convert2.wsfをJane2ch.exeと同じフォルダに解凍する

http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/822

コメント:
(中略)
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>)#mi

までコピーする

htmltodat.exeを起動
左下3番目prmファイルボタン→入力欄を右クリックして貼り付ける
保存ボタン→任意の名前.prmと名づけJane2ch.exeと同じフォルダに保存する
htmltodat.exeを閉じる


command.datを開き
LINKからdat取得=wscript "$BASEPATHhtmltodat-convert2.wsf" "$LINK" "任意の名前"
入力からdat取得=wscript "$BASEPATHhtmltodat-convert2.wsf" "$INPUT" "任意の名前"
と入力して上書き保存

あとはGetLogと同じ右クリから外部コマンド使って取得
ただし差分入力には対応してないのでログが多少でもある場合は
スレurlをコピー後ログ削除→右クリ入力からdat取得でペーストして取得

832名無しさん:2015/03/18(水) 19:54:46
2chブラウザ Jane Style Part117 [転載禁止](c)2ch.net
http://anago.2ch.net/test/read.cgi/software/1426520789/622

622 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/18(水) 19:13:19.12 ID:SPOUqZL00
"$LINK"は"$LINK$URL"の方がいいよ
開いてるスレですぐ使える

2chブラウザ Jane Style Part117 [転載禁止](c)2ch.net
http://anago.2ch.net/test/read.cgi/software/1426520789/626

626 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2015/03/18(水) 19:18:13.92 ID:2NT7R8KV0
"$LINK$URL"だとgetlogと全く同じ使い方できるね
色んなパターン作っておけばいいか
後はこの閉じて開き直す手間が無くなれば完璧なんだけど厳しいか

833名無しさん:2015/03/20(金) 10:21:08
2chブラウザ Jane Style Part11(c)2ch.net (実質Part118スレ)
http://anago.2ch.net/test/read.cgi/software/1426777984/113,134,148より

・フォルダで管理する場合


Jane Style
   ┗script
     ┗htmltodat
         ┗htmltodat-convert2.wsf

・command.datに
LINKからdat取得=wscript "$BASEPATHscript\htmltodat\htmltodat-convert2.wsf" "$LINK$URL" "任意prm(拡張子書くな)"

・htmltodat-convert2.wsf修正箇所
【13行目 挿入】
var base = (new ActiveXObject("WScript.Shell")).CurrentDirectory + "\\";
(new ActiveXObject("WScript.Shell")).CurrentDirectory = cur;

【20行目 curをbaseに】
var log = GetProf("PATH", "LogBasePath", base, base + "Jane2ch.ini");

【66行目 curをbaseに】
cmd.Run("\"" + base + "Jane2ch.exe\" " + "\"" + WScript.Arguments(0) + "\"");

834名無しさん:2015/03/20(金) 10:21:52
2chブラウザ Jane Style Part11(c)2ch.net (実質Part118スレ)
http://anago.2ch.net/test/read.cgi/software/1426777984/135より

必ず1つ下のサブフォルダの固定でよければ、

1.「htmltodat」というサブフォルダを作り、
bregexp.dll,nkf32.dll,htmltodat.exe,htmltodat-convert2.wsf,任意の名前.prm
の5ファイルを移動

2.htmltodat-convert2.wsfを2行修正する
20行目
var log = GetProf("PATH", "LogBasePath", cur, cur + "Jane2ch.ini");
 ↓
var log = GetProf("PATH", "LogBasePath", "", cur + "..\\Jane2ch.ini");

66行目
cmd.Run("\"" + cur + "Jane2ch.exe\" " + "\"" + WScript.Arguments(0) + "\"");
 ↓
cmd.Run("\"" + cur + "..\\Jane2ch.exe\" " + "\"" + WScript.Arguments(0) + "\"");

3.command.datのwsfとprmファイルにパスを追加
LINKからdat取得=wscript "$BASEPATHhtmltodat\htmltodat-convert2.wsf" "$LINK$URL" "htmltodat\任意の名前"
入力からdat取得=wscript "$BASEPATHhtmltodat\htmltodat-convert2.wsf" "$INPUT" "htmltodat\任意の名前"

835名無しさん:2015/03/22(日) 14:22:53
janexeno & chaikaでhtmltodatByFiddler 2.00を使わせてもらっています

http://kanae.2ch.net/test/read.cgi/nmb/1423569517/
このスレを新規で読み込んだ後、新着チェックをすると416になり「ここ壊れてます」となります。

http://anago.2ch.net/test/read.cgi/software/1426858616/907
ということらしいので差分取得の部分を修正すればいいと思うのですが
htmltodatByFiddlerではどう修正すればいいでしょうか?
ご教示お願いします

836 ◆/vmukiyuzw:2015/03/22(日) 19:35:48
>>835さん

http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/239

にレスしました。
まあそんなこだわりがあるわけでもないんですが
htmltodatByFiddlerについては上のスレでやってきたので
情報が分散するのはあまりよくないなというのと、
本家(?)htmltodatの話題と混ざるとややこしいかもという
感じです。

837835:2015/03/22(日) 20:09:18
>>836
さっそくの対応ありがとうございます。

スレ違いだったようで申し訳ありませんでした。
fiddlerに関する話題はそちらのスレにお邪魔させていただきます。

838名無しさん:2015/03/23(月) 00:34:48
Fiddlerとかあったのか

謎の多い迎撃機だよな

839名無しさん:2015/03/24(火) 23:28:58
突然ですが質問させていただきます。
以下のような、外部板の過去ログとして保存されているスレッドの場合、
http://www2.atchs.jp/spacestar/oldkako/
HTML化は通常の方法でやっても良いのでしょうか?
また、正規表現はどれを選択すれば良いのでしょうか?

どうか返答をお願いします。

840 ◆/vmukiyuzw:2015/03/25(水) 01:03:27
>>839さん
そこの保存過去ログに限定しての回答でいいですかね?

> HTML化は通常の方法でやっても良いのでしょうか?

とは多分prmファイルを使わない方法でもいいかという意味かと思うのですが
そこのログに関していえば前処理も必要になりますので
prmファイルを使わない場合前処理と正規表現の両方の管理が必要になります。
それでも構わないというならいいですがお勧めはprmファイルのほうですね。
前処理・正規表現は以下でいけるかな。
サンプルが少ないのでまだわからないとこもありますが。


前処理:
s`<br />`<br>`ig
s`.nbsp;<br></dt>``ig

正規表現:
m`<DT>(?:<A.*?>)?([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) ?:(.*?)<DD>(.*)<BR><BR>(<dt>|</dl>)`mik

841名無しさん:2015/03/25(水) 18:20:03
>>840
ありがとうございます。無事にdat化に成功しました。
prmファイルというのがわからず検索しましたが理解できませんでした。
普通にhttp://www2.atchs.jp/spacestar/oldkako/3.htmlをHTML化し、
◆/vmukiyuzwさんが教えてくれた前処理と正規表現を記入して変換開始を押しました。

しかし、dat化したファイルを専ブラで読んだ後、専ブラを再起動させると
スレビューが真っ白になり読めなくなってしまいます。
読みたくなったら専ブラを起動するたびにdatファイルを放り込まないといけないようです。

842 ◆/vmukiyuzw:2015/03/26(木) 00:05:44
>>841

> しかし、dat化したファイルを専ブラで読んだ後、専ブラを再起動させると
> スレビューが真っ白になり読めなくなってしまいます。
> 読みたくなったら専ブラを起動するたびにdatファイルを放り込まないといけないようです。

専ブラの種類&バージョンは何でしょう。
あとdatファイルの取り込みはどのように行いましたか?
環境が許せば追試してみます。

# といいながら明日からちょっと忙しいので週末まで何もできないんですが

843名無しさん:2015/03/26(木) 02:10:21
>>842
専ブラはJaneXenoです。
datの取り込み方は、http://www2.atchs.jp/spacestar/ を板登録して、
その板一覧にdatファイルをドラッグ&ドロップしました。
それ以外の方法を知らないので…

お忙しい中すみません。
時間ができたらで結構ですのでどうかよろしくお願いします。

844名無しさん:2015/03/26(木) 07:40:35
>>843
横からごめんなさい。(◆/vmukiyuzwさんではありません)
D&Dはとりあえず読むための方法ですね。
その板はどのツリーに、何という名前で登録しましたか。
例えば、 外部板
        └宇宙の星
というように登録したのだとしたら、(適当でごめんなさい)
\JaneXeno\Logs\2ch\外部板\宇宙の星 という感じのフォルダがあるはずです。
コンピュータからこのフォルダを開いて、ここにファイルを移動します。
よくわかんなければ、外部コマンドに
%板フォルダを開く=explorer "$LOCALDAT\.."
と書いて、板一覧で右クリックし、「板フォルダを開く」をクリックすれば、フォルダが開きます。

845名無しさん:2015/03/26(木) 22:00:18
>>844さん、アドバイスをありがとうございます。
その通りに実行したのですが、やはりスレは真っ白で何も表示されませんでした。
(コマンドも登録しましたが実行されませんでした)
やはり特殊な過去ログ倉庫に入っているスレだからでしょうか。

板登録は、 その他
         └宇宙の星
というふうにしました。

846名無しさん:2015/03/27(金) 00:08:01
2chで途中までログを持っているスレで使用するには
一旦ログを削除してからhtmltodat-convert2.wsfを実行するしか方法はないのでしょうか?

847名無しさん:2015/03/27(金) 00:54:04
質問というか要望というか、です。

1、スレタイの挿入位置を任意のところにしたいのですがデフォで出来ますか?
2ch形式と違いしたらばではスレタイがレス1の末尾でなくその1つ前のブロックなので、
正規表現と変換結果式を工夫してみたり、後処理の中で出来ないかと試したのですが一向にうまくいきません。
もしスレタイ挿入が後処理のあとなのでしたら、変換結果式の中で$titleのような形で指定できるようにしてほしいです。

2、上に関連してですが、したらばのタイトルは<h1>タグの方が本来のタイトルなのでそちらから取得するようにしてほしいです。
前処理でのスレタイ補正も考えたのですが、スレタイや板名次第では面倒なことになるので。
より汎用的にするなら変換結果式の中で$h1titleのような形で指定できたらと思います。

3、datを保存するときに文字エンコードを変更したいのですがどこで指定できますか?
readmeに書かれている「保存文字コード」を探したのですが見つけられません。
少なくともdat保存時のダイアログには表示されてないのです。

一応使用環境はOSはXP SP3、専ブラはChaikaです。

よろしくお願いします。

848844:2015/03/27(金) 07:52:24
>>845
・Windowsのバージョンは?
・Jane2ch.exeの場所は?
 ショートカットから起動しているなら、それを右クリックして「リンク先」をここにコピペしてください
・JaneXenoの設定-【パス】の「ログとボード一覧のフォルダ」をコピペしてください
・その板の現行スレの一覧は見えていますか?
・取得した現行スレはありますか?
・外部コマンドをまだ削除していなければ、スレ一覧で右クリックして「板フォルダを開く」が見えますか?

> やはり特殊な過去ログ倉庫に入っているスレだからでしょうか。
そんなことはないです。

849845:2015/03/27(金) 18:16:11
>>848さま

・Windowsのバージョンは?
Windows7 Home Premiun SP1

・Jane2ch.exeの場所は?
C:\Users\***\Documents\Jane Xeno\Jane2ch.exe

・JaneXenoの設定-【パス】の「ログとボード一覧のフォルダ」をコピペしてください
今見たら白紙状態でした。どう設定すべきでしょうか?(もしやこれが問題!?)

・その板の現行スレの一覧は見えていますか?
はい、見えています。

・取得した現行スレはありますか?
ありません。

・外部コマンドをまだ削除していなければ、スレ一覧で右クリックして「板フォルダを開く」が見えますか?
見えます。クリックしたところ、ちゃんと目的のところまでファイルが開きました!
datをそこにコピーして開いてみたのですが、
(・∀・)サテオシゴト・・・          ε三三三三(; ・∀・)鯖マデオツカイ
HTTP/1.1 400 Bad Request
( ・∀・)(・∀・ )オツカイオワリ 三三三三3
(・∀・∀・)
(・∀・)ナンカエラーダッテ HTTP/1.1 400 Bad Request
(・∀・)カンリョウ!!
というエラーで読むことはできませんでした。

850 ◆/vmukiyuzw:2015/03/28(土) 02:33:29
ちょっと忙しくて離れてた間にあちこちでいっぱいレスがついてる・・・^^;
とりあえずややこしそうなのから行ってみよう。

>>847さん
そもそも、したらばのログを変換してChaikaで読みたいという話なんですよね?
Chaikaの仕様をよく知らないのでわからないとこもあるんですが、
読みたいログはしたらばの現行(生きてる)ログ?それとも過去ログ?
現行ログにしてもhtmlで取得する(read.cgiを使う)方法と
したらば独自のrawmode.cgiを使う方法があるのですがどちらですか?
(貴方の書き方ではどれにでも判断できる気がしてよくわかりません)

変換したいURLのサンプルを(できれば複数)示していただきたく。
また、欲しい結果の形式も通常の2chのdat形式と違うような気もするので
その場合はそれも示していただければと。

1と2についてはまずはそこからってとこで。
3については、確認なんですがChaikaではしたらばのログはEUCのまま
ログを保存してるんですかね?
大抵の専ブラは2chと同様に扱いたいためSJISに変換して保存してるのが
ほとんどだと思うんですが、Firefoxのプラグインだからその辺あまり
頓着しなくてもできるってことなのかな?

851848:2015/03/28(土) 07:40:32
>>849
そうそう、パスにユーザ名が入っていたら伏せてください、って書くの忘れました
ちゃんと***にしてくれてよかったです
ログとボード一覧のフォルダも、(空欄のこともあります)と書いておいたほうが親切でしたね

\Program Filesフォルダ絡みだと超めんどくさいんで、とりあえずそうでなくてよかった

現行スレの一覧が見えるなら、外部コマンドで開いたフォルダにsubject.idbとsubject.txtが
あるはずなのですが、ありますか? 他にファイルはありますか?
フォルダ名は「宇宙の星」で、フォルダのプロパティの「場所」は、
「C:\Users\***\Documents\JaneXeno\Logs\2ch\その他」となっていますか?

以下を試してみてください
・スレ一覧で「宇宙の星」板を開いていたら、閉じる
・レス欄でそのスレを開いていたら、削除する
 フォルダにコピーしたdatは消えると思います
・あらためて、(JaneXenoにではなく)フォルダにdatファイルをコピーする
・「宇宙の星」板を開く
これでスレ一覧の一番下にそのスレが出てくるはずなのですが…

852848:2015/03/28(土) 07:44:36
はっ、◆/vmukiyuzw さんが!
>>850
>>844,848,851

853848:2015/03/28(土) 07:51:18
ミスった…>>852

>>850
>>844,848,851 です。
差し出がましいとは思いましたが、htmltodatとは関係ない所でつまづいてるっぽかったので…
JaneXenoユーザなのでこのくらいは。
chaika使っていればそちらもお手伝いできるんですが、そうじゃないのでさっぱりです。

854847:2015/03/28(土) 22:53:44
>>850
まず確認不足による事実誤認があったので一部撤回します。

>>847の2について現行、過去ログ問わずh1タグが本来のスレタイだと思ってましたが、過去ログではh1タグ自体がないのですね。
てっきりしたらば共通仕様としてあるものとばかり思ってました。
また仮にh1タグの方を使いたい場合でも前処理で本来のタイトルを削除後h1タグをtitleタグに置換すればいいだけと気づきました。

そういうわけで2については撤回します。申し訳ない。

で変換したいのは過去ログです。
ただChaikaと他の専ブラのdatの扱い方が根本的に違うので、どこのスレと指定する必要はないかな。
なんせ、

> 大抵の専ブラは2chと同様に扱いたいためSJISに変換して保存

これに驚きました。多くの専ブラがそういう仕様だったなんて。
テストがてら入れていたJaneXenoで試したら確かに。
Chaikaは最後までofflaw2対応を見送り続けるぐらいに公式ないし準公式な公開情報を尊重し実装してるので、
2ch仕様に変換済みのdatの保存は基本無しの方向です。
(尤も今回のAPI騒動のおかげで封じてきたWebスクレイピングを次回以降の大型アップデートで実装予定ですが)
ですのでサイトから取得したものはそのまま保存し、表示の都度然るべき変換を行ないます。
すなわち

したらば仕様
文字エンコード:EUC-JP
レス番号<>名前欄<>メール欄<>日付<>レス本文<>スレタイ<>ID

のままdatファイルとして保存しています。
このスレならば
http://jbbs.shitaraba.net/bbs/rawmode.cgi/computer/1929/1038588508/
をダウンロードしたのと同じですね。
なので文字エンコード指定とスレタイ位置指定が出来ればということです。

あと追加でprmファイルの読み書きダイアログがやや小さく思います。
初めて開いたときボタン類が見えなかったため使い物にならないと判断してしまいました。
ウインドウを広げればいいだけだったんですが出来れば修正願います。
一応開いた直後のスクショです。
http://light.dotup.org/uploda/light.dotup.org164419.png

855 ◆/vmukiyuzw:2015/03/28(土) 23:31:30
>>854さん
自分でもchaika使って調べてみて、だいたいお書きになった状況だろうなと
想像していました。

で、まず文字エンコードについてですが
htmltodatのウィンドウの何もない場所(例えばプレビュー欄の右上など)
をダブルクリックすると今まで見えなかったボタン等がいろいろ出現すると思います。
そのうち、一番下の欄、「prmファイル」のボタンの右に
「保存文字コード」というリストボックスが現れますので、そこで「EUC」を選択してください。
その状態のままdat保存するとEUC形式になります。

なんでそんな隠し機能になってるかというと>>784参照
つまり、SJIS以外で保存するブラウザがあるとは思っていなかったからです。

で、
> レス番号<>名前欄<>メール欄<>日付<>レス本文<>スレタイ<>ID
については次レスで。

856 ◆/vmukiyuzw:2015/03/28(土) 23:47:18
>>855続き。
後処理で、ID欄を削ってdat一行の最後に付け直すようにしてみました。
スレタイの付加は後処理より前にやっています。
実際に必要なのはスレタイの位置指定ではなくIDの場所移動だったみたいです。
ただ、テキスト上では変換結果を確認したのですが、私のほうで
htmltodatで変換したdatをchaikaで読む方法がまだわからず・・・
確認していただけたらと思います。(できたら教えてください)


コメント:
# したらば過去ログをrawmode.cgiが返すのと
# 同様の形式に変換する

変換結果式:
$1<>$3<>$2<>$4<>$5<>

後処理:
s`(\d+?<>.*?<>.*?)(\sID:(.+?))(<>.+?)\r\n`$1$4<>$3\n`ig

正規表現:
m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

857849:2015/03/28(土) 23:59:33
>>851さま、原因がわかりました。
htmltodatでHTML化、dat化した時に、スレタイである日本語そのままのファイル名で保存されており、
再起動するとそれが文字化けして読み込み不可能となっていたのです。
http://www2.atchs.jp/spacestar/oldkako/を見るとスレッドID項目がありましたので、
その数字にファイル名を書き換えて、>>851さまの
>>以下を試してみてください を実行したところ、成功しました。

外部コマンドで開いたフォルダにはsubject.idbとsubject.txtがあり、
例の文字化けしたdatファイルとidxファイルがありました。
それを削除して、ファイル名を変更したdatファイルをコピーし、
「宇宙の星」板を開いたら目的のスレが出てきました。
今度は再起動しても問題なく読めます。

過去ログ倉庫に移動された際に、**********.datという、従来のような
ファイル名ではなくなったためだと思います。

作者である◆/vmukiyuzwさま、そして救済に入ってくださった851さまには
とんだお騒がせをしてしまい申し訳なく思います。すみませんでした。
お付き合いいただきまして本当にありがとうございました。

858 ◆/vmukiyuzw:2015/03/29(日) 00:10:59
>>855さらに続き。

>>854
> あと追加でprmファイルの読み書きダイアログがやや小さく思います。
> 初めて開いたときボタン類が見えなかったため使い物にならないと判断してしまいました。
> ウインドウを広げればいいだけだったんですが出来れば修正願います。

これ、もともとXPの環境で開発してて、win8.1の環境に移植したときに一回発覚したので
その時に修正したんですが(>>800)、まだ出るんですか。
お使いのOS及びhtmltodatのバージョンをよろしければお教えください。
(といってもいろんな環境でテストできる状況でもないので修正できるかどうかはわからないです)

859 ◆/vmukiyuzw:2015/03/29(日) 00:17:26
>>857さん
問題解決したようでよかったです。
>>851さん
私が留守の間に丁寧にサポートしていただきありがとうございます!

860 ◆/vmukiyuzw:2015/03/29(日) 00:39:23
さてここまでの残件は
>>846さんですか。

htmltodat-convert2.wsfについてはすでにいろんなところで話に上がっていて
まとめページを書いてくださってる方もいて
http://pastebin.com/0QDr9S8v
私が語れることはあまりないと思うんですが

途中までログを持っているスレでhtmltodat-convert2を使うと
その時点で取得済みのログは上書きされるはずなので
「一旦ログを削除してから」という動作は必要ないと思いますよ。
上の参考スレにもありますが、再描画、もしくはいったん閉じて開きなおす
でいいと思います。

861名無しさん:2015/03/29(日) 03:31:57
要望です

解像度の低いディスプレイだとウインドウ下部が見切れて
マウスでの操作が出来ません
下部の見えないボタンは現在キーボードから操作しています

スクロールバー等での対応出来ればお願い致します

862名無しさん:2015/03/29(日) 11:46:47
>>860
そのまとめページにも

>※ 一度でも該当スレを開いたことがある場合は、事前にログ削除して、a)、c)の手順で実行すればレス内容が表示されないということは起きない
>※既に開いたことがある場合は、ログ削除しないと「ここ壊れています」と表示される場合がある

とあります。
スレの再描画はやっていますが差分は表示されません。
一度ログを削除してから実行すると全部取得できるのですが。

とここまで書いた後でいろいろ試してみてわかったのですが、
どうやら該当スレの板のスレッド一覧を更新しないとダメな様です。

つまりお気に入りや最近読み込みから該当スレを開いて差分取得を試みるとスレの再描画やスレの開き直しをやっても差分は表示されない。
コマンドを実行した後に該当スレの板のスレッド一覧を更新してからスレの再描画やスレの開き直しをすると差分が表示される。
もしくは該当スレの板のスレッド一覧を更新してからコマンドを実行してスレの再描画やスレの開き直しをすると差分が表示されるみたいです。

863名無しさん:2015/03/29(日) 12:42:09
途中までログを持っているスレは
メモ欄のプレビューでいけるかと・・・

864名無しさん:2015/03/30(月) 23:24:01
>>855-856
ありがとうございます。
多少の定義の変更が必要でしたけどほぼうまくいきました。
したらば自体何度か仕様変更があったようで定義も修正する必要があるでしょうけど、
ヒントは得たのでそれはその時おいおいやることにします。
以下でテストしました。

メンテナンス告知スレッド
http://jbbs.shitaraba.net/bbs/read.cgi/computer/10298/1071739838/
テストその1
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1024130759/
テストその3
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1117200553/
テストその4
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1117201019/

テストその1のスレで文字化けする以外はおおむね満足な結果です。
文字化けは使用してるライブラリの所為でしょうがないのかな?

現時点で保存したprmです。

コメント:
# したらば過去ログをrawmode.cgiが返すのと
# 同様の形式に変換する

前処理:
# アンカーではないリンクのタグ除去
s#<a href="h[^>]+>([^<]+)<\/a>#$1#migk
# 旧仕様のID欄をrawmode.cgi仕様に置換
s#<font size=1>\[ ([^ ]*) \]<\/font>#ID:$1#migk

アンカー削除:
false

透明あぼーんを補う:
true

変換結果式:
$1<>$3<>$2<>$4<>$5<>

後処理:
# スレタイをrawmode.cgi仕様の位置へ移動
s#(\d+?<>.*?<>.+?)(\sID:([^<]+?))?(<>[^\r]+?)\r\n#$1$4<>$3\n#ig
# 透明あぼーん補完時の文字列除去
s#透明あぼーんかも<>##gk

正規表現:
m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

865名無しさん:2015/03/30(月) 23:28:24
>>856
残念ながら板フォルダにdatを放り込むだけではChaikaのデータベース(storage.sqlite)には自動登録されないのでスレ一覧には表示されません。
一応今後の実装予定で何らかの形で登録しやすくするらしいですが。
手動での登録は現状sqliteを扱えるソフト、あるいはFirefoxのアドオンSqlite Managerを利用しますが今回は割愛。

とりあえず見るだけに限定しての話。

1、板フォルダはChaikaサイドバーの板一覧から板を選択、スレ一覧を表示。
2、右上のツールを押すとあらわれる「ログディレクトリの表示」で開く。
または、
1、同じサイドバーの右上のアイコンを押して「フォルダを開く」メニューからログフォルダを開く。
2、該当の板フォルダを探し出して移動。どれを開くべきかはフォルダ名で類推できると思うので割愛。

3、datを板フォルダに放り込みスレのリンク(多くは/read.cgi/なリンク)をChaikaで開く。

開くときは右クリックのChaikaメニューを利用するか、
Chaikaオプションの「ブラウザ」にあるスレッドリダイレクタをonにしてリンククリック。

>>858
OSは>>847で書いた通りXP SP3です。htmltodatのバージョンは0.11.6です。
またシステムフォントをMeiryoKe(ただしフォント名はMSゴシック系に改編)に変更しています。
このフォント変更の影響なのかボタン等の文字が切れて表示されるソフトがあったことを思い出しました。
どのソフトだったかまでは思い出せませんが、確かResourceHackerで修正したと記憶しています。
参考になったら幸いです。

866 ◆/vmukiyuzw:2015/03/31(火) 00:08:23
>>864-865さん
私がChaikaの使い方をあまり知らない中、
ご自分で努力いただきありがとうございます。
Chaikaのデータベース登録はこれから研究してみます。

> テストその1のスレで文字化けする以外はおおむね満足な結果です。
> 文字化けは使用してるライブラリの所為でしょうがないのかな?

そんなスレを引用されるとは・・・
そのスレは昔自力でプロキシ的動作をするソフトを作っていて
そこから文字コードの変換をテストしていたものなんです。
文字化けするかどうかをテストしていたんで文字化けは当然なんです。

あと、
> あと追加でprmファイルの読み書きダイアログがやや小さく思います。

これはこちらで確認できる環境を作る自体がなかなか難しく。
>>861さんの要望なんかも類似の問題の気がするのですが
しばらく時間を頂きたく思います。

867861:2015/03/31(火) 01:45:40
>>866
宜しくお願い致します

868名無しさん:2015/04/01(水) 04:55:26
画面が小さいモバイルPCで起動すると画面からボタンがはみ出してしまい、
下部の「prmファイル」「dat保存」のボタンが押せないのですが、
どうすれば良いのでしょうか?

OSはWin7です。解像度は最大で1024x600までしか出せず、
フォントサイズを小にしても表示し切れません。
幸い、VGA出力端子が付いているので外部ディスプレイに繋いで
なんとか使っている状態です。

よろしくお願いします。

869名無しさん:2015/04/01(水) 06:23:59
>>868

>>861,866

870名無しさん:2015/04/01(水) 09:24:38
>>868
見切れている部分がどの程度なのか分からないけど

タスクバーを自動的に隠す設定にしてみるとか
 タスクバー右クリック - プロパティ

タイトルバーをモニターの外にはみ出させるとか
 Alt+Space - 移動(M) - ↑キー

キー操作でサブウィンドウを表示させるとか
 prmファイル(R) = Alt+R
 dat保存(S) = Alt+S

こんなんじゃアカンのだろうか

871861:2015/04/01(水) 10:22:41
>>870
まー取り敢えずありがとう
でもアカンから要望してるんだよ
親切でレスしてるのは分かるけど自分の力量の範囲にしようよ
まして確認できないものを無理して答えなくてもよいと思う

例えばタスクバーを自動的に隠すはタイトルバーの幅では追いつかない
ウインドウを移動しての対処はウインドウが自動的に最大化してしまう
見えないものをショートカットで操作する事が想像出来ないのかな

上記後出し情報は作者さんの力量を考えてあえて書いてない
初心者にレスするなら必要な情報かも知れないが
こういったものを創れる作者さんだからね

ウインドウが見切れる事例は他にもあるから検索すれば分かるはず

872名無しさん:2015/04/01(水) 17:28:39
なんだこいつ

873名無しさん:2015/04/03(金) 16:58:16
お邪魔します。

以下のしたらばログ倉庫の
http://jbbs.shitaraba.net/bbs/storage.cgi/otaku/5678/
スレッドをdatファイルにしたいです。

前処理と後処理は必要でしょうか?(その場合どれを選べばいいでしょうか)
また、正規表現は「jbbs過去ログ改」で間違いないでしょうか。

874 ◆/vmukiyuzw:2015/04/04(土) 00:13:00
>>873さん
えーと、基本的には前処理も後処理も必要ないはずですし
正規表現もそれで問題なくdat変換できると思うのですが
ここに質問してこられたからには何かうまくいかなかったんですかね?
その場合、お使いの専ブラの種類・バージョン、あとdatファイルを
どうやって取り込もうとしたかなど教えていただければアドバイス
できるかもしれません。

>>861さん、>>868さん
解像度の低い(or低くできる)環境というのが今私の周りになくて
ようやく来週には調達できるかなという感じです。
また、本業のほうがこのところかなり忙しく
プログラム修正のほうにまとまった時間をなかなか取れない状況です。
申し訳ないですが気長にお待ちいただければと思います。

875名無しさん:2015/04/04(土) 04:39:50
>>874
873です。先程は正規表現が違うとのエラーでできなかったのですが、
もう一度試したら無事dat化できました。
ありがとうございました。

876 ◆/vmukiyuzw:2015/04/10(金) 23:51:56
htmltodatをバージョンアップしました(0.11.7)
 ・解像度の低いディスプレイで使用する場合に画面下部が見切れてしまう問題の
  対処として、スクロールバーを出せるよう修正。
  また、それに伴いいくつかのフォームの位置・サイズ等の属性を修正。

そんなに色々な環境でテストできたわけでもないので若干推測を含むのですが。
解像度の低いディスプレイでは起動すると右端にスクロールバーが見えるようになると思います。
(環境によってはこのスクロールバー自体見切れてしまうかもしれません)
また、このスクロールバーで下までスクロールしても画面下部まで見られないかもしれません。

ウィンドウを最大化するとスクロールバーが見切れずに見えるようになると思います。
この状態だと画面下部までスクロールできると思います。
ちょっと一手間二手間必要なのはお許しください。

解像度に合わせて適宜リサイズして自動でディスプレイに収まるようにするのが本当はいい方法なんでしょうが
なにせ最初からそういう想定をせずに作っていたもので今から変えるとなると結構大変で・・・
とりあえずこんなものでお許し頂けないかと。

あと、>>854さんからご指摘があったprmファイル読み書きウィンドウが小さい(ボタンが見えない)件ですが
該当するかもと思われる件があったので修正してみました。
ただこちらの環境では不具合自体を再現できず直ってるかどうかを確認できないため
ご確認いただければ幸いです。

>>871さん
私は万年素人のサンデープログラマーなんで過大評価しないでください。
情報があればぜひ教えていただきたいです。

877861:2015/04/11(土) 00:23:45
>>876
お忙しいところお手数をお掛けしまして申し訳ありませんでした
私の環境では最下部のボタン操作が出来るようになりました
有難う御座います

昔から利用させて貰ってましたが最近の仕様変更で更にお世話になっています
革めて有難うございます

何か気づいた点がありましたらお役に立てるか分かりませんが
私で宜しければご協力させて頂きたいと思います

878854:2015/04/11(土) 13:01:34
>>876
0.11.7確認してみました。
prmのダイアログは問題ありませんね。
http://light.dotup.org/uploda/light.dotup.org170296.png

ただ本体の方が起動直後こんなことになってます。
http://light.dotup.org/uploda/light.dotup.org170297.png

0.11.6まではこんな感じでした。
http://light.dotup.org/uploda/light.dotup.org170301.png


あちらを立てればこちらが、といったところでしょうか。
とりあえずこれまで通り0.11.6を使うことにします。

879 ◆/vmukiyuzw:2015/04/11(土) 21:57:24
>>878さん
> あちらを立てればこちらが、といったところでしょうか。

うーむ、確かにそれに近い状況かもしれません。
なんとか両方立てられないかと考えた結果、以下の人柱バージョンを作ってみました。
一応目指したのは
・解像度が十分な環境であれば今までどおり一番下のボタンまで表示される
・解像度が低く全体を表示できない環境であればウィンドウを最大化すれば
 スクロールバーで一番下のボタンまで表示される

自分の環境(一応8.1、XPの2台でいろんな解像度で試しているつもり)では
うまく表示されるようなのですが、いろんな環境の方にお試しいただければと思います。

http://mukiyu.g.ribbon.to/cgi-bin/download2.cgi?name=htmltodat0.11.8&amp;url=htmltodat0.11.8b.zip

htmltodat.exeファイルのみ入ってます

880861:2015/04/11(土) 23:27:05
>>879
ご苦労様です

うちの2台(解像度が高と低)で確認しました
どちらも特に問題ありませんでした

881854:2015/04/12(日) 03:30:09
>>879
今度は大丈夫なようです。
http://light.dotup.org/uploda/light.dotup.org170653.png

ありがとうございました。

882 ◆/vmukiyuzw:2015/04/12(日) 04:05:36
>>861=880さん、>>854=881さん、ご確認いただき本当にありがとうございます。

多分htmltodatをよく使っていただいてる方からのコメントなんで間違いないとは思うのですが、
もうちょっと他の方からのコメントも待ちたいなというのと
もう少し弄ってみたいかなという部分があるんで正式リリースはちょっとお待ちください。

883名無しさん:2015/04/12(日) 05:27:37
そもそも漠然と小さい画面だからと要望を出す馬鹿がいるから困るんじゃなかろうか
せめて自分の環境がどのような解像度と縦横比なのかぐらい書いてもらえよ
http://www.a-ain.net/2click/pc/pc_081siryo_gamen.html

884 ◆/vmukiyuzw:2015/04/19(日) 01:30:24
2ch.netのread.cgiでftp://の書き込みをしたら読めなくなるバグがなかなか修正されないようなので
何かできないか考えて、とりあえずびんたん(スマホ用の2chビューア)からdat変換するのを考えてみました。
ただ、残念ながらread.cgiとは違い過去ログは読めないようです。
また、メール欄の情報が存在しないため欠落してしまいます。


コメント:
# びんたんの読み込みをdatに変換してみる

URLの変換:
s`http://(.+?\.2ch\.net)/test/read\.cgi/(.+?)/(\d+)/?.*`http://bintan.ula.cc/test/read.cgi/$1/$2/$3`

前処理:
# スレタイ置換
s`<title>.*?</title>``
s`<div class="topic_name_inner_left">\s*?<p>(.*?)</p>`<title>$1</title>`i
# レス1だけ形式が違うので他と合わせる
s`<span\ id="read_one_body(?:.|\s)*?<span>\s:\s(.*?)</span>`<a\ class="respop">1</a>.<b>$1</b>`i
s`<div\ style="clear:both;"\ class="topic_date">(.*?)</div>(?:.|\s)*?(<div\ class="honbun">.*?</div>)`$2<font>$1</font>`i

アンカー削除:
false

変換結果式:
$3<>$2<>$5<>$4<>

後処理:
s`<a\ href=.*?>``ig
s`</a>``ig

正規表現:
m`<a\ class="respop".*?>
(\d+) # レス番
</a>.+?<b>
() # メール欄情報は存在しないためダミーに
(.*?)</b> # 名前欄
.*?<div\ class="honbun">
(.*?) # レス本文
</div>.*?<font.*?>
(.*?) # 投稿日 一般的なhtmlと違いレスの後ろに付いている(よって変換結果式で引っくり返しが必要)
</font>`mikx

885名無しさん:2015/04/20(月) 13:41:26
htmltodatが急に使えなくなって、取得すると「2ちゃんねる専用ブラウザをご利用の皆さまへ」が表示されるんだけど、
対策されたかな?

886名無しさん:2015/04/20(月) 14:27:30
>>885
UA変えてダメ?

887 ◆/vmukiyuzw:2015/04/20(月) 22:34:03
>>885さん
サーバによっては大丈夫なところもあるようですが確かにエラーになるところもありますね。
>>886さんのおっしゃるようにUAの問題のようなので、適当に変えてもらえれば回避できるかと。

htmltodatでUAを変更するには、受信オプション - HTTPヘッダの追加 のところで
User-agent: なんたらかんたら
と指定してください。
汎用のwebブラウザのUAを指定しておけばかなり安全なんじゃないですかね。
例えばIE11のUAであれば(うちの環境でですが)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko
こんな感じです。

# UAを色々弄ってテストしてみたのですが、現バージョンでの
# User-Agent: Monazilla1.00 (htmltodat/0.11.1)
# てのがエラーになるようです。(0.11.0とか0.11.2にしてもエラーにはならない)
# てことは2ch側でピンポイントではじく対象UAのリストに入ってることなのね・・・なんか複雑

888885:2015/04/21(火) 20:33:41
>886, 887
User-agent 設定したら使えるようになりました、ありがとうございました

889名無しさん:2015/04/29(水) 02:30:44
>>887
いつもツールを使わせていただきありがとうございます。
すみません、どうしても回避できません。
先月までは何も問題なく使えていました。

htmltodat起動
受信オプションクリック
httpヘッダ追加ボタンクリック
User-Agentとコピペ&OKクリック
下の欄にUser-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Geckoをコピペ&OKクリック
htmltodatを再起動し、受信オプション、一覧表示と、User-Agentとクリックし、上記コピペがあることを確認し、閉じる
Janeの右クリックからwscript "$BASEPATHhtmltodat-convert2.wsf" "$LINK" "htmltod"を使うがご利用の皆様へ表示
試しにコピペをUser-Agent:抜きとかやってますが、駄目でした。

どこか間違っていたら教えてください。

Win7Pro、C:\Progra~1\Jane\jane2ch.exe Jane3.81、自動車板
log C:\Jane
当該過去ログ削除済

890 ◆/vmukiyuzw:2015/04/29(水) 03:30:06
>>889さん
多分勘違いがいくつかある気がするんですが。

「受信オプション」の内容はhtmltodatの全体で保存されるのではなく
各prmファイルに保存される仕組みになっています。
また、「受信オプション」から「追加」で設定するものは
「HTTPヘッダの追加」欄に入力した内容に名前を付けて保存するためのものなので
「追加」をクリックして出てきた入力ボックスにUser-Agentを入力しただけでは
何の意味もありません。(そこに入力した名前でファイルが作られるだけ)

てなわけで、お使いのprmファイルは「htmltod.prm」でしょうか?これをお使いなら
・htmltodat起動
・「prmファイル」ボタンで「htmltod.prm」ファイルを読み込む
・受信オプションからhttpヘッダ欄にお書きになった「User-Agent: 〜」を入力&OKクリック
(追加ボタンを押すのではないですよ?そこ間違えないように)
・再び「prmファイル」ボタンで「htmltod.prm」ファイルを(上書き)保存

これでいけると思うんですがどうでしょう。

891名無しさん:2015/04/29(水) 14:11:59
>>890
htmltod.prm=任意の名前.prm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://anago.2ch.net/test/read.cgi/software/1426520789/614
>htmltodat.exeを起動
>左下3番目prmファイルボタン→入力欄を右クリックして貼り付ける
>保存ボタン→任意の名前.prmと名づけJane2ch.exeと同じフォルダに保存する
>htmltodat.exeを閉じる

892名無しさん:2015/04/29(水) 15:10:40
今まで使えていたのに使えなくなったのでスレに来たら解決法が書いてあったので試しました

が、駄目です
2ちゃんねる専用ブラウザをご利用の云々言われて見れません

HTTPヘッダの追加:
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; LCJB; rv:11.0) like Gecko

という内容でPRMファイルを作りJane2ch.exeと同じフォルダに保存しました
なのでこのフォルダにはPRMファイルが2つ入っています
その後Janeを再起動しログを削除し再度コマンドを実行してみたのですが変わらず見れませんでした
UAを変えて自分の環境のものを入力してみたのですが意味はなかったです
足りないことは何でしょう?

893名無しさん:2015/04/29(水) 17:41:36
新しくprmファイルを作るんじゃなくて
今まで使ってたprmファイルに追記する形になるんだよ

894名無しさん:2015/04/29(水) 17:43:02
なるほどn

895名無しさん:2015/04/30(木) 19:48:25
困ってたらこのスレにたどり着きました
>>890の手順で解決しました
有り難うございました!

896 ◆/vmukiyuzw:2015/05/01(金) 01:26:27
UA絡みの問題で2ch.netからエラーを返されるケースが多発しているのかな?
>>892さんは多分解決したかな?
>>889さんはどうだろう。

近々、>>879あたりを反映したバージョンアップをする予定ですが
その際UAも変更すると思うので、この問題は解消するかも。
でも2ch.net側からは「はじくUA」のリストに入れられてるぽいので
>>890みたいな対処をかましておいたほうがいいかもです。

897名無しさん:2015/05/02(土) 01:26:37
横からだけど受信オプション設定のHTTPヘッダ一覧にあるUA変更1だけでいまのところ問題なしです

898名無しさん:2015/05/15(金) 23:26:52
2ちゃんねる専用ブラウザをご利用云々が増えてきたなぁ…

899名無しさん:2015/05/15(金) 23:56:14
どこかのスレで見たが専ブラの独自UAは弾くらしい。
非対応専ブラはお断りってことなんだろう。

900名無しさん:2015/05/16(土) 00:39:48
ち、相変わらずイライラさせるw
コレだからアメリカのストリップバーの経営者上がりは…w
たとえ独善的でも、妙な感覚の上に成り立ったひろゆきの新しさのほうが まだ面白かった…w

901名無しさん:2015/05/16(土) 10:37:59
FC2のようにならないためだから仕方ない。
サーバ>アメリカ
経営者>アメリカ

902名無しさん:2015/05/16(土) 12:30:04
>> 900
だよな。ひろゆきは自分しか儲からないような仕組みであってもユーザーの自由っていう哲学を持ってやってた。
今のJIMクソには哲学も何もありゃしない。自分以外のすべてが不自由を感じていても金さえ独占できればあいつは満足するんだろうな。

>> 901
FC2もしれっと鯖や登記をアメリカじゃなくて日本が国交結んでるかどうかも怪しい中南米の島国にでもすればよかったのにな。
AnyDVDのアンティグア・バーブーダみたいにさ。

903 ◆/vmukiyuzw:2015/05/28(木) 01:30:34
http://anago.2ch.net/test/read.cgi/software/1427376861/983-985
htmltodatはもともと2chのread.cgiを読むために作ったツールじゃないので。
むしろ2chで読めないスレを読むために何とかしようと作ったものなんで
こういう言い方されるのは正直むかっとしました。

でも、UAでmonazillaをかたるのには特にこだわりはないし
適当に変えてもいいんでしょうが、
その適当なUAの相手に迷惑かけるなんてことはまさかないでしょうが
ちょっと気持ち的に抵抗があるのです。
なので、問題がある方は
>>887あたりで対処していただけないかと。
(今後気持ちが変わるかもしれませんが)

904名無しさん:2015/05/28(木) 03:26:07
Monazilliaが弾かれるわけじゃなくてhtmltodatが弾かれてるのが現実なのに
Monazilliaを問題にするのは相当なこだわりがあるように見受けられますが?
使う人の利便性を考えたら、Monazilliaを名乗るのはこだわり次第として、
htmltodatを入れるのは止めておいたほうが良くはありませんか?

905 ◆/vmukiyuzw:2015/05/28(木) 04:07:07
>>904さん
Monazillaにもhtmltodatにも何のこだわりもありません。
>>887で対処できるのに何の文句があるの?て感じですが
次のバージョンでは文句出ないようになんか考えます。

906名無しさん:2015/05/28(木) 13:13:48
User-Agent: Mozilla/4.0

でいんじゃね?

907名無しさん:2015/05/28(木) 17:42:31
受信オプション設定のHTTPヘッダ一覧
UA変更1がUser-Agent: Mozilla/5.0
なんだからそれでいいじゃん

908 ◆/vmukiyuzw:2015/05/28(木) 19:57:18
バージョンアップしました(0.11.8)
 ・前バージョンの解像度問題の対処が不十分だったため再度修正。
 ・User-Agentの変更。

メインの変更は>>879でやった人柱バージョンの正式リリースですが
ここんとこ問題になってたUser-Agentもとりあえず変更しました。

「とりあえず」というのは、前バージョンまでの「htmltodat」を含むUAが
ピンポイントではじかれたんであれば、今バージョンでのUAも
対策される可能性がないとは言い切れないと思うのです。
まあそのときはそのときでまた考えるしかないんですが。

909名無しさん:2015/05/28(木) 22:33:35
大感謝祭

910名無しさん:2015/06/06(土) 03:45:47
バージョン0.11.8だけど、誤検出王のNortonで「WS.Reputation.1」が検出されて消されちゃいましたよ
復元して対象外にしたけど

911名無しさん:2015/06/27(土) 17:48:36
なくなってしまったワイワイカキコの板のスレをInternet Archiveから取得してみようとしているのですが
変換が上手くいきません

↓例
https://web.archive.org/web/20090924202521/http://yy700.60.kg/yaruo/kako/1249/12499/1249978566.html

まず、URLを指定して「HTML変換」を押すと
「IOHnadler value is not valid」
というエラーが出てしまいます。

しかたないのでHTMLをデスクトップに保存して
「一覧表示」からひとつずつ試しましたが
変換できないか、変換できたDATのサイズが元板から取得したDATとサイズが合いません
(ワイワイカキコが生きていた頃に取得したDATと、そのスレのInternet Archiveのページを変換したDATとを比較)
>>119の方のを試してみてもダメでした

正規表現のどの部分をいじればいいのでしょうか?

912名無しさん:2015/06/27(土) 18:46:58
>>911
html2datはhttpsに対応していないはず。(ですよね?)
httpで取得すれば「IOHandler value is not valid」はでない。

そのまま取得あるいはダウンロードすると本来はUTF-8で開くはずがcharsetのせいでShift_JISで開く。
ローカルで
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
と、charsetをUTF-8に変えて保存し直すこと。

913 ◆/vmukiyuzw:2015/06/28(日) 23:02:35
>>911さん

>>912さんのご指摘のとおり、htmltodatは現状httpsには対応していないので
URLをhttp://に修正して取得してください。

で、charsetのせいで文字コード変換がうまくいかないのも
>>912さんのご指摘の通りなのですが、もう少し楽に対処する方法が。

・htmltodatを起動後、ウィンドウ上の何もないところ(例えばプレビュー欄の右上など)
 をダブルクリックする。今まで見えなかったボタン等がいろいろ出現する
・ウィンドウ最上段、「文字コード自動判別」チェックボックスをオフにする
・URLを入力しHTML取得
・URL欄の下の「ソース文字コード」で「UTF-8」を選択
・その右の「->SJIS変換(J)」(ちょっとわかりにくいけどボタンです)を押す

これで手動(?)文字コード変換ができます。
(文字コード自動変換をサポートしてなかった時の名残の機能)
# 文字コードはcharsetを見なくても自動判別できると考えられるため
# いっそ一切見ない方法も今後検討します

以上をやった上で、>>911のURLのHTMLの形式は
2chのread.cgiと同じみたいなので正規表現としては
「read.cgi7.00?」が使えるんじゃないでしょうか。
もしくは元datにより近づけるには>>807のほうがいいかもです。

914名無しさん:2015/07/01(水) 23:24:28
おーぷん2ちゃんねるの変換はどのようにしたらいいのでしょうか?
http://awabi.open2ch.net/test/read.cgi/news4plus/1396515469/
なのですが

915 ◆/vmukiyuzw:2015/07/02(木) 01:18:38
>>914さん
htmltodatで変換してdatを得ることはもちろん可能だと思うのですが
それ以前におーぷん2ちゃんねるって基本的に2chのdatと互換ですよね?
お使いの専用ブラウザによって方法はいろいろかもしれませんが
open2ch.netを読める設定にすればhtmltodatは不要だと思うのですが。

私の環境ではボード一覧取得のURLを
http://kita.jikkyo.org/cbm/cbm.cgi/20.p0.m0.sc.op/-all/bbsmenu.html
にしてるのですが(scやおーぷんも読める設定)、
>>914のURLは何も意識せずとも読めましたけど。

そういうのがしたくなくてどうしてもhtmltodatで変換したいということなら
またご相談ください。

916914:2015/07/06(月) 00:37:15
>>915
あれ?取れますか
JaneViewで取得できなかったので質問させてもらったんですが、どうやらおま環だったようですね
ありがとうございます

917名無しさん:2015/07/06(月) 02:21:21
>>916
URLを変えただけじゃダメでボード一覧にopen2chのエントリがちゃんと設定されてないとダメ
具体的には、板一覧の更新を実行(更新されなかったらCTRLキーを押しながら実行)

918 ◆/vmukiyuzw:2015/07/06(月) 21:33:05
>>916
数種類の専用ブラウザでいろいろ試してみたのですが
Jane系では>>914のスレはdat落ち扱いになる?ようで、
http://awabi.open2ch.net/test/read.cgi/news4plus/1396515469/ のURLでなく
http://awabi.open2ch.net/news4plus/kako/1396/13965/1396515469.dat のURLでアクセスしようとして
エラーになるみたいです。(subject.txtに存在するかどうかでアクセスするURLを読み替えている)
他の専ブラではボード一覧を変えなくても読めたりボード一覧を>>915にするだけで読めたりするので、
Jane系でのURLを読み替える動作は、こういう場合はあまりうまくないような感じです。

とりあえず、専ブラで直ではないですがdatを取得する方法としては、
>>914のようなおーぷん2ちゃんねるのスレは汎用ブラウザで開くと一番下にdatへのリンクがあるんで、
そこからダウンロードする方法があります。
(おーぷんでの過去ログの扱いがよくわかってないので常に通用する方法かどうかわかりませんが)
htmltodatでやるなら以下の手でURLだけ読み替える方法もあります。


コメント:
# おーぷん2ちゃんねるを変換その1(URLのみ)

URLの変換:
s`(http://.*?)/test/read\.cgi/(.*?)/(\d+)/.*`$1/$2/dat/$3.dat`

dat変換をしない(前処理のみ行う):
true



あと、htmlから変換するための正規表現等も一応考えてみました。
おーぷん独自の仕様を把握し切れてないので抜けがあるかもですが。


コメント:
# おーぷん2ちゃんねるを変換その2(HTMLを変換)

URLの変換:
s`(http://.*?/test/read\.cgi/.*?/\d+/).*`$1`

プレビューを表示しない:
true

後処理:
# ID周りのごちゃごちゃを処理
s`<span\ (?:class=_id\ )?val=.*?><a\ .*?>(.*?)</a>(?:<font\ .*?>)?(\(.*?\))?.*?</span>`$1$2`ig

正規表現:
m`
<dt\ res="?(\d+) # レス番
.+?(?:mailto:(.+?)>)? # メール欄
<b>(.+?)</b>(?:</font>|</a>)+ # 名前欄
\ ?:(.*?) # 投稿日・ID
<dd.*?>\ ?(.*?)<br><ares.*?> # レス本文
`mikx

919名無しさん:2015/07/20(月) 03:20:31
UAがUser-Agent: Mozilla/5.0だと弾かれるようになったので
個人の汎用ブラウザのUAにしてdat取得には一応成功したのですが
右側のプレビューとdat変換結果枠の下のスレ数とかが出ていた部分が
なにも表示されなくなりました

これを直すことはできますか?

920 ◆/vmukiyuzw:2015/07/20(月) 19:35:34
>>919さん

> 右側のプレビューとdat変換結果枠の下のスレ数とかが出ていた部分が
> なにも表示されなくなりました
> これを直すことはできますか?

変換オプションの「プレビューを表示しない」をオフにしてください。
(二重否定表現になっちゃってややこしいですが「表示する」にするということです)
デフォルトではオフ(false)なので、多分prmファイルでオン(true)に指定されてるのかなと思います。

以前、prmファイルを使ってスクリプト等から呼び出せるように修正した頃に
プレビューの表示処理はちょっと重いしスクリプト等から呼ぶ場合は不要だなと思ったので
オプションでオンオフできるようにしたのです。(>>785参照)


しかしまあ、>>908で変更したUAが

> UAがUser-Agent: Mozilla/5.0だと弾かれるようになったので

になっちゃったのは気づいてませんでした。懸念していた通りのことが起きてしまった。
当たりさわりのなさそうなものにしたつもりが、それでもアウトなんですかね。
自力でUAを変更できる手段は一応用意してるとはいえ、今後どうしたものか。

921名無しさん:2015/07/20(月) 21:19:19
UAはIEの設定かデフォルトブラウザの設定を引っ張ってきたらどうかな

922 ◆/vmukiyuzw:2015/07/21(火) 03:14:29
>>921
ブラウザのUAなんてプログラムソースにハードコーティングされてるようなものじゃないんですか?
私が無知なので申し訳ないんですがそれを外から引っ張る方法をご存じなら是非ご教示いただきたく。
一応レジストリを検索してみて、IEのUAかなと思われるエントリはあったのですが
Monazilla/4.0 とかになってたんでこれ実際に動いてるものじゃないんじゃないのって思いました。

923 ◆/vmukiyuzw:2015/07/21(火) 03:23:18
>>922
ハードコーティング→ハードコーディング
Monazilla→Mozilla
眠いんでいろいろ間違え気味です

924名無しさん:2015/07/21(火) 22:46:42
IEのUAは以下の説明を参照されたし。
https://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx
https://msdn.microsoft.com/ja-jp/library/ms537503(v=vs.85).aspx (日本語。若干情報が古い)
https://msdn.microsoft.com/en-us/library/ff986085(v=vs.85).aspx (IE9での変更部分)
https://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx (IE10〜Edge)

925919:2015/07/22(水) 02:46:31
>>920
遅くなりましたがありがとうございます
無事解決しました

926 ◆/vmukiyuzw:2015/09/09(水) 00:49:00
また2ch.netのread.cgiで読めない不具合が起きているようなので
>>884のびんたんからの変換を修正してみました。
(自分にできそうなのはそんくらいしかないので・・・)
最近あちこちの板で見かける、名前欄にいろんな送信元の情報?を含んで
表示されるケースに対処できてなかったので修正しました。


コメント:
# びんたんの読み込みをdatに変換してみる ver.2

URLの変換:
s`http://(.+?\.2ch\.net)/test/read\.cgi/(.+?)/(\d+)/?.*`http://bintan.ula.cc/test/read.cgi/$1/$2/$3`

前処理:
# スレタイ置換
s`<title>.*?</title>``
s`<div class="topic_name_inner_left">\s*?<p>(.*?)</p>`<title>$1</title>`i
# レス1だけ形式が違うので他と合わせる。名前欄の内容にspanタグが含まれることがあるのでそれとぶつからないよう注意
s`<span\ id="read_one_body(?:.|\s)*?<span>\s:\s(.*?)</span>\s*</div>\s*</div>`<a\ class="respop">1</a>.<b>$1</b>`i
s`<div\ style="clear:both;"\ class="topic_date">(.*?)</div>(?:.|\s)*?(<div\ class="honbun">.*?</div>)`$2<font>$1</font>`i

アンカー削除:
false

変換結果式:
$3<>$2<>$5<>$4<>

後処理:
s`<a\ href=.*?>``ig
s`</a>``ig

正規表現:
m`<a\ class="respop".*?>
(\d+) # レス番
</a>.+?<b>
() # メール欄情報は存在しないためダミーに
(.*?)</b> # 名前欄 </b>を複数含む場合があるため単に最短一致ではなく後続<div class="honbun">のみマッチさせる
\s*?<div\ class="honbun">
(.*?) # レス本文
</div>.*?<font.*?>
(.*?) # 投稿日 一般的なhtmlと違いレスの後ろに付いている(よって変換結果式で引っくり返しが必要)
</font>`mikx

927 ◆/vmukiyuzw:2015/09/10(木) 22:54:02
>>926
これで変換したdatを専ブラで読んでみるとなぜかレスアンカーがリンクにならない・・・
調べてみると、例えば>>1のようなレスアンカーは本来html上では&gt;&gt;1と表現されるべきものが、
びんたんではそのまま>>1と出力されているのがまずいみたいです。
(むか〜し昔read.cgiでもあった事象です。>>72-78あたり)

とりあえずの対処として、後処理の最後に以下を足して下さい。


s`>>`&gt;&gt;`ig

928名無しさん:2015/09/17(木) 14:19:08
>>927
>>924から組み立てているのかどうかは判らないが
IEコンポーネントを使ってるブラウザDountRAPTは自動的にUAを初期化してる
ソースも公開されてるので興味があれば調べてみては?

929 ◆/vmukiyuzw:2015/09/18(金) 01:05:32
>>924さん>>928さん
アドバイスありがとうございます。
技術的にどうすればいいかはある程度イメージはあるんですけど
あんまりやる気は起きないってのが正直なとこです。

前から書いてますがUAを自力で変える手段は提供してますし
それを使えないような方はそもそもこのソフトを使えないんじゃないかと思います。
こういう言い方はちょっとどうかとも思いますが
もともと万人が使えることを目指したものでもないんで。

930 ◆/vmukiyuzw:2015/09/22(火) 00:31:49
びんたんが吐くhtmlが微妙に仕様変更されてて
>>926-927 ではうまく変換できなくなっているようなので修正しました。


コメント:
# びんたんの読み込みをdatに変換してみる ver.3

URLの変換:
s`http://(.+?\.2ch\.net)/test/read\.cgi/(.+?)/(\d+)/?.*`http://bintan.ula.cc/test/read.cgi/$1/$2/$3`

前処理:
# スレタイ置換
s`<title>.*?</title>``
s`<div class="topic_name_inner_left">\s*?<p>(.*?)</p>`<title>$1</title>`i
# レス1だけ形式が違うので他と合わせる。名前欄の内容にspanタグが含まれることがあるのでそれとぶつからないよう注意
s`(<a\ class="respop".*?>1</a>\ :\ )(.*?)\ :\ `$1<b>$2</b>`i
s`<div\ style="clear:both;"\ class="topic_date">(.*?)</div>(?:.|\s)*?(<div\ class="honbun">.*?</div>)`$2<font>$1</font>`i

アンカー削除:
false

変換結果式:
$3<>$2<>$5<>$4<>

後処理:
s`<a\ href=.*?>``ig
s`</a>``ig
s`>>`&gt;&gt;`ig

正規表現:
m`<a\ class="respop".*?>
(\d+) # レス番
</a>.+?<b>
() # メール欄情報は存在しないためダミーに
(.*)</b> # 名前欄 </b>を複数含む場合があるため単に最短一致ではなく後続<div class="honbun">のみマッチさせる
.*?<div\ class="honbun">
(.*?) # レス本文
</div>.*?<font.*?>
(.*?) # 投稿日 一般的なhtmlと違いレスの後ろに付いている(よって変換結果式で引っくり返しが必要)
</font>`mikx

931名無しさん:2015/12/09(水) 00:05:11
すみません
質問させてください

http://hanabi.2ch.net/test/read.cgi/anichara2/1447210834/
このスレが12/2の438までは上手く変換できてたのですが
それ以降設定を弄ってないのに「一行が長すぎるか正規表現が正しくないようです」とでるようになりました
HTMLは取得できています
正規表現は12/2以前もそれ以降も0.26その2を使っています
自分が見ている他のスレは同じ仕様(0.26その2)で変換できていてこのスレだけ引っかかりました

どこを直したらいいでしょうか

http://2chdays.net/anichara2/dat/1447210834.dat
これで583までは取得できたのですが残りができませんでした

932名無しさん:2015/12/09(水) 00:11:42
追記
どうやらhanabi.2ch.netだけおかしくなるみたいです

933 ◆/vmukiyuzw:2015/12/09(水) 00:47:05
>>931さん
えっと、このスレでは話題に上がってなかったんでスルーしてたのですが
2chの一部のサーバでread.cgiの仕様変更があって返ってくるhtmlの形式が
ガラッと変わっています。
なので従来の正規表現等では変換できないケースが出ています。

で、次レスで一応対応したつもりの正規表現等を紹介しておきます。
ただ、それ以前に若干の疑問が。

正規表現「0.26その2」とは「DAT2HTML0.26その2」のことですよね?
それはそもそも2chのread.cgiに対応しているものではないはずなんですが。
その時点でなんか勘違いがあるんではないかと不安になります。

934 ◆/vmukiyuzw:2015/12/09(水) 00:55:19
read.cgi 06系対応版。
05系と統一できないか考えてたのですがちょっと難しそうなので
とりあえずそのまま出します。使う側で使い分けが必要なのは
申し訳ないです。


コメント:
# 2chのread.cgiからの出力を変換-20151208
# 2chのcgi仕様変更(06系)に対応
# まだ今後の推移が読めないので様子見バージョン

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

アンカー削除:
false

後処理:
# BE周りの処置
s#<img src="http://(img\.2ch\.net/.+?)">#sssp://$1#igk
s#</div><div class="be .*?><a href="http://be\.2ch\.net/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# jump.2chは無駄なので取っ払う
s#<a href="http://jump\.2ch\.net.*?>(.*?)</a>#$1#igk
# フルパスを相対パスに変換(やらなくても問題ないかもしれないが一応昔の仕様に合わせる)
s#<a href="http://.*?\.2ch\.net/(test/read\.cgi/.*?/\d+/\d+)#<a href="../$1#igk
s#<a href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能のimgタグを除去
s#<img src="(.*?)">#$1#igk

正規表現:
m#<div\ class="number">([0-9]+).+?<div\ class="name"><b>(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></div><div\ class="date">(.*?)</div><div\ class="message">(.*?)</div>#mi

935名無しさん:2015/12/09(水) 15:11:45
横からですがありがとうござます。
やっと自作PC板のdatが取得できますた・・・

936 ◆/vmukiyuzw:2015/12/09(水) 22:56:18
えーと、従来のread.cgiも変更されてるので対応しておかないといけませんね。

元々正規表現「read.cgi7.00?」の発展形としてやってきたものなんですが
現在のread.cgiのバージョンは 05.02.02だって?
うーん、なんか巻戻ってるけどあまり気にしないことにしよう・・・
とりあえず>>934のものは06系、このレスのもの(従来のものの発展形)は05系と呼んで区別することにします。
>>807>>822あたりからの変更になります。


コメント:
# 2chのread.cgi 05系からの出力を変換-20151209
# 元datに近づけるためアンカー削除はオフにし
# 後処理で不要なもののみ削除する
# メール欄デコード処理は不要になったので削除
# バナー広告にマッチしないよう正規表現を修正

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

アンカー削除:
false

後処理:
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# BE周りの処置
s#<img src="http://(img\.2ch\.net/.+?)">#sssp://$1#igk
# 以下はhtmltodatの内部処理に組み込まれているので不要
#s#<a href=.?javascript:be\((\d+)(?:,\d+)?\).*?>\?(.*?)</a>#BE:$1-$2#igk

正規表現:
m#<dt.*?>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.+?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?)<br><br>(<dt.*?>|</dl>|<div)#mi

937931:2015/12/11(金) 17:40:58
/vmukiyuzwさん

ありがとうございます
>>934でいけました

DAT2HTML0.26その2の件はかなり昔に何かでdat化できなかったときに
これを試したら出来てたのでそのままにしてました
いままで不便なく2ちゃんもdat化できてたのでほっておいたという次第です

938 ◆/vmukiyuzw:2016/03/18(金) 00:23:22
最近2ch.netの一部の鯖でhtmlベースでの過去ログが取得できない不具合が出ているようですが。
2ch.netでdat落ちしていても2ch.scで拾われてるケースが多いので、これをなんとかできないか
考えてみました。

最初、単に2ch.netでのURLを2ch.scのURLに読み替えればいいかと考えたのですが
鯖名(xxx.2ch.netのxxxの部分)が異なる場合もあるので単純には変換できない。
どうしたものかと考えたのですが、ふと気づいたのは
2ch.scに拾われてるということは、取得先を2ch.netから2ch.scに切り替えた「ログ速」でも
かなりの確率で拾われていると考えられます。

となるとhtmltodatにも出番がありそうです。「ログ速」からの変換は>>820
Jane系であればhtmltodat-convert2のスクリプトも使えます。

939名無しさん:2016/03/18(金) 01:32:08
頑張ってください!

940名無しさん:2016/03/31(木) 02:40:07
>>938
お疲れ様です、いつも利用させてもらってます

>>820の方法で echo鯖(軍板)のdat落ちのログを変換して
jane style ver3.81 に落とし込むことができ
jane styleに表示は可能ですが、改行?がされておらず(横方向に長い)
非常に読みにくい表示になってます

この状況の改善は可能でしょうか、よろしくお願いします。

941名無しさん:2016/03/31(木) 07:05:33
>>940
ログ速の?URLを貼ってください

942名無しさん:2016/03/31(木) 11:28:42
質問です
今は存在しない外部掲示板のdatを取得することは可能でしょうか?
ちなみに太陽板というなりきり掲示板でした

943 ◆/vmukiyuzw:2016/03/31(木) 21:50:29
>>940さん
>>941さんのおっしゃるとおりで、具体的なURLを示して頂かないと検証できません。
ただ、URLはログ速のものでなくても元スレ(2ch.netのもの)でもいいです。
>>820のパラメータの中でURLを読み替えるようになっているので)


以下は推測にすぎないのですが。
改行がされていない?という状況だと、レス内の<br>タグが何らかの理由で
削除されてしまっているのではないかと思います。
>>820をそのまま使用していた場合そんなことにはならないはずですが
以前、JaneでReplaceStr.txtを使用していた場合に
このスレの表示の一部が変更されてしまい、パラメータをコピペする際に
内容が変わってしまって不具合が起きたということがありました。
今回のケースもそれかもしれないという気がします・・・

>>820をJaneStyleからではなく、IE等の汎用ブラウザからコピペしても
同じ結果になるか試してみてください。

944940:2016/03/31(木) 22:00:11
ご返事が遅くなり申し訳ありません

元スレのURL
民主党ですが他国の同類です
http://echo.2ch.net/test/read.cgi/army/1459050594/
(ログ速URL)
http://www.logsoku.com/r/2ch.sc/army/1459050594/

このURLでいいのかちょっと不安ですが、こちらの方でも自力で問題解決できるかやってみます

945 ◆/vmukiyuzw:2016/03/31(木) 22:04:22
>>942さん
なりきり太陽板については以前(>>516-517)扱ったことがあるのですが
2012年頃に閉鎖されたようですね。
元データがなければhtmltodatとしてはできることはないです。

webarchive等でたまたま拾われてるのを探すか、
有志の方が過去ログをまとめて保存してくれているサイトを探すか、
いずれにせよGoogle先生に頼まないと仕方ないですね。
(「なりきり太陽板」でぐぐってみるとそれらしきサイトはいくつか見かけましたけど)

946 ◆/vmukiyuzw:2016/03/31(木) 22:56:00
>>940,944さん
こちらでも現象再現しました。で原因も半分わかりました。
>>943で推測したのに近く、<br>タグが<br/>のままになっている
ことが改行がうまくいかなかった理由です。

しかし、<br/>を<br>に変換する処理は前処理に入れてるのですが
何故か効いていない。
他のdat落ちスレで試してみると効いているので
なぜこのスレだけが効かないのか・・・
で、この処理を後処理に移してみるとこれまた何故か効く。
・・・ということで根本原因は今のとこ分かってないです。

詳しくはこれから調べますが、当面お困りの問題の回避策としては
後処理(前処理ではない!)に

s#<br/>#<br>#igk

を入れる、というのでいけるかと思います。

947942:2016/04/01(金) 02:00:33
>>945
ありがとうございます
検索してみたところ唯一見つかったのが以下のURLでした
http://karinto.in/taiyoulog/comic/jamp/hxh.html
ここからdat取得は可能でしょうか?

948940:2016/04/01(金) 09:02:00
>>946
忙しい中、素早い対応ありがとうございました。
私の方でも解決できました。

949 ◆/vmukiyuzw:2016/04/01(金) 20:47:37
>>942,947さん
そのサイトに関してだけいえば、htmlの形式が非常にクラシカル
(昔の2ch.netが吐いていたhtmlに近いという意味)で、
前処理だのなんだのは不要で単に正規表現「DAT2HTML0.26」で
dat変換できると思います。

950942:2016/04/01(金) 22:02:06
>>949
成功しました。ありがとうございました!

951名無しさん:2016/04/05(火) 10:00:52
すみません
自分も便乗します

閉鎖された外部板のスレのログを取りたいのですが
ぬこでも見ていたのでそっちの自分の履歴からは過去ログが保存されてます
これをhtmltodatで専ブラdat化できますか?

952 ◆/vmukiyuzw:2016/04/05(火) 21:18:50
>>951さん
まず私が「ぬこ」というのを全然知らなかったので調べてみました。
確認ですが、 http://n2ch.net/?guid=ON から行けるサービスのことでいいんですよね?
だとすると、
http://n2ch.net/r/-/xxxx/1000000000/?guid=ON
みたいな形式で得られるhtmlをdatに変換するには、という問題だと考えていいですかね?

953951:2016/04/05(火) 22:14:35
>>952
レスありがとうございます

そうです
携帯2chブラウザサービスのぬこです
キチンと書き込んでいなくて申し訳ないです
形式もそれで問題ないと思います

954 ◆/vmukiyuzw:2016/04/06(水) 20:45:38
>>951,953さん
もともとガラケー向けのサービスみたいなので、通信量を減らすための工夫がいろいろされてるんですが
いざ専ブラ用datに変換しようとするとやっかいな点がいくつかあります。

1つは、いろいろ省略オプションが設けられてる点。
(名前欄が板のデフォルト名無しの場合に省略される、投稿日欄が一部省略される、等)
これらを省略せず表示させるには、ぬこ(n2ch.net)側の設定を変更する必要があります。

もう1つは、一度に表示できるレス数に上限がある点。
最大が127レスで、これは設定画面でも明記されてるので当面どうにもならないようです。
ということは、htmltodatで変換する場合、127レス以上のスレは複数回に分けて変換し
結果をテキストエディタ等でつなげ合わせないといけないということになります。

これらへの対処はちょっと長くなるので次レス以降で。

955 ◆/vmukiyuzw:2016/04/06(水) 21:04:01
>>954続き
まず、ぬこ(n2ch.net)の設定変更についてです。

設定の変更は、IE等の汎用ブラウザでn2ch.netでのスレッドを表示し
画面の下のほうにある「設」をクリックします。
「ユーザ設定」画面が出てきて「レス表示」のところで色々弄れるのですが、
ここで設定した内容はn2ch.netにアクセスするURLの一部に反映されるようになっています。
なので、私が設定してみた結果の値を書いておきます。

ブラウザでn2ch.netのスレッドを表示した後、
URLの n2ch.net/r/-/ の「-」の部分を「-tE--OKxI」に変更してください。
次に、レス番号(板名/スレッド番号/ の後の数字)には「1-」を入れてください。

例: http://n2ch.net/r/-tE--OKxI/software/1458254677/1-?guid=ON

これでブラウザには該当スレの先頭から127までのレスが表示されると思います。
(名前欄の省略等もなくなっているはず)
ここでブラウザのURL欄に表示されてるURLをhtmltodatのURL欄にコピペしてdat変換します。

次に、ブラウザ側でn2ch.netのスレッド画面下部の「次」をクリックします。
これでブラウザには該当スレの128以降のレスが表示されるはずです。
(URLを直接htmltodatに入力するのではなく一旦ブラウザを経由させるのは
この「次」機能を使いたいため。でないと自分で次のレス番号を計算しないといけない)
で、ブラウザのURL欄のURLを再びhtmltodatにコピペしてdat変換します。
※このとき、dat保存するファイル名は前回と同じになるはずなので重複しないように適当に変えてください。
※「変換警告」ウィンドウが出て「レス 0-128 の間が飛んでいます」等と出ると思いますが
 気にしなくていいです。

これをスレの最後まで繰り返して、得られたいくつかのdatファイルをテキストエディタ等で一つにつなげると。

とりあえずこんな手順で考えてみました。
かなり手間だしわかりにくい部分もあるかもしれませんがどうでしょう。

正規表現等は次レスで。

956 ◆/vmukiyuzw:2016/04/06(水) 21:29:20
>>954-955続き
正規表現等は以下。
前レスでの設定変更云々に時間がかかったのでテストが不十分かもしれません。


コメント:
# ぬこ(n2ch.net)の変換 2016/04/06

前処理:
# ぬこが独自につけるアンカータグを除去
s`<A HREF="\./.*?>(.*?)</A>`$1`g

変換結果式:
$2<>$3<>$4<>$5<>

後処理:
# ID後の(1/2)みたいな表示を取り除く
s`( ID:.*?)\([/\d]*\)`$1`g

正規表現:
m`
(?# レスの区切り) <HR>
(?# レス番号) (\d+)
(?# レス番号の後の数字をスキップ) (?:</FONT>.*?<FONT\ SIZE="-1">)?
(?# 名前) :\ <B>(.*?)</B>
(?# メール欄) \ \[(.*?)\]
(?# 投稿日・ID) \ (.*?)<BR>
(?# レス内容) (.*?)
(?# 次のレス区切り$6)(<HR>)
`kx

957951:2016/04/09(土) 01:02:50
ありがとうございました
無事ぬこから過去ログ取得できました
助かりました

ぬこ自体の鯖に残っていれば板やスレッドが消えても取得できるのは大変ありがたいです

958名無しさん:2016/04/22(金) 09:45:16
お尋ねします
read.cgi7.00?で変換開始をすると、一行が長すぎるか、正規表現が正しくないようですとメッセージが表示されます
その他のタイプを選んでも同じようになります
http://shiba.2ch.net/test/read.cgi/akb/1460929521/ で現象が発生します
対処の仕方を教えて下さいますようよろしくお願い致します

959名無しさん:2016/04/22(金) 17:41:14
>>958
>>934

960名無しさん:2016/04/22(金) 22:19:23
>>959
何をどうすれば良いのか正直わかりません

961 ◆/vmukiyuzw:2016/04/22(金) 23:09:43
>>958,960さん
>>959さんのご指摘でわからないということは
推測ですがhtmltodatでprmファイルを使ったことがないのでは?

prmファイルとは何か、どう使うのかについては、
htmltodatのreadme.txtに書いてますので「prm」で検索して参照ください。
また、>>797のレス等も参照ください。

初期のhtmltodatでは、正規表現を一覧から選択または編集して変換すれば
良かったのですが、それだけでは済まないサイトが徐々に増えていき
前処理等の変換オプションが追加されていきました。
で、段々それらの管理・指定方法が面倒になってきたので
ひとまとめで指定できるようにしたのがprmファイルです。
現状では、正規表現だけを選択して変換できるケースのほうが稀で
prmファイルを使ってる方が多いのではと思います。

まあ、言葉でいうほど難しいことではないと思うので一度お試しください。

962名無しさん:2016/04/23(土) 10:18:33
>>961
prm初めて聞きました。
何をどうすればわかりませんでしたので。
試してみてわかりませんでしたらまた相談させていただきます。
教えていただきありがとうございます。

963 ◆/vmukiyuzw:2017/03/31(金) 23:13:25
最近Fiddlerのスクリプトにばかりかまけていてこちらのほうはほったらかしだったんですが
2ch.net および bbspink.com の read.cgi に仕様変更があったので
こちらにもそれを反映させておきます。
(現状 2ch.net や bbspink.com の過去ログを読むためにこのソフトを使っておられる方が
どれくらいおられるかわかりませんが)

まずは 2ch.net の read.cgi 06系。>>934に対する修正ということになります。


コメント:
# 2chのread.cgi 06系からの出力を変換-20170331
# 2chのcgi仕様変更(06系)に対応
# read.cgi側の細かい仕様変更にぼちぼち対応

URLの変換:
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# BE周りの処置
s#<img src=".*?//(img\.2ch\.net/.+?)">#sssp://$1#igk
s#</div><div class="be .*?><a href=".*?//be\.2ch\.net/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグを除去
s#<img src=".*?(//.*?)">#sssp:$1#igk

正規表現:
m#<div\ class="number">([0-9]+).+?<div\ class="name"><b>(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></div><div\ class="date">(.*?)</div><div\ class="message">(.*?)</div>#mi

964 ◆/vmukiyuzw:2017/03/31(金) 23:23:29
続いて、bbspink.com の read.cgi への対応。
2017年3月上旬に仕様変更があり 2ch.net の read.cgi とはかなり異なるものとなりました。


コメント:
# bbspink.comのread.cgi からの出力を変換-20170331

URLの変換:
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# 名前欄のfontタグ除去
s#<font color="green">(.*?)</font>#$1#igk
# BE周りの処理
s#</span><div class="be .*?><a href=".*?//be\.2ch\.net/user/(\d+).*?>\?(.*?)</a></div># BE:$1-$2#ig
# BE周り処理との絡みでゴミが残るので除去
s#</span><>#<>#ig,"<>")
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグ削除
s#<img src=".*?(//.*?)">#sssp:$1#igk

正規表現:
m#<dl class="post".*?><dt class=""><span class="number">(\d+).*?</span><span class="name"><b>(?:<a href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></span><span class="date">(.*?)</dt><dd class="thread_in">(.*?)</dd></dl>#mi

965名無しさん:2017/04/02(日) 10:43:25
>>963
> 過去ログを読むためにこのソフトを使って…

います、ここにいますー(´・ω・`)ノ
今回の仕様変更に伴って、ちょっと自分の力ではどうしようもなかったので
対応されたOnBeforeResponseの中から必要そうな部分を移植してどうにか使用しておりました…

このたびprmの形にしていただきまして大変助かりました
ありがとうございます

966名無しさん:2017/04/03(月) 00:33:03
>>963
ここにもおります
ご対応いただきまして助かります
本当にありがとうございました

967名無しさん:2017/04/03(月) 01:46:54
>>963
利用させてもらってます
有難うです

968名無しさん:2017/04/07(金) 16:29:31
>>963-964
利用させてもらってます!

969名無しさん:2017/04/17(月) 20:36:57
>>963
1時間ほど前に落ちたν速のとあるスレで動作確認しました。
ありがとうございます。

970969:2017/04/24(月) 21:05:57
ν速の過去ログ取得できない(´;ω;`)ブワッ

971 ◆/vmukiyuzw:2017/04/25(火) 01:04:09
>>970さん
ご存知の方も多いかもしれませんが、2chのread.cgiにバージョンアップ(07.0.0)があり
htmltodatByFiddlerのほうでその対応をしていました。
でとりあえず落ち着いたような気もするのでこちらにも反映しておきます。


コメント:
# 2chのread.cgi 07系からの出力を変換-20170424
# 2chのcgi仕様変更(07系)に対応

URLの変換:
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# BE周りの処置
s#<img src=".*?//(img\.2ch\.net/.+?)">#sssp://$1#igk
s#</span><span class="be .*?><a href=".*?//be\.2ch\.net/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグを除去
s#<img src=".*?(//.*?)">#sssp:$1#igk

正規表現:
m#<span\ class="number">([0-9]+).+?<span\ class="name"><b>(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></span><span\ class="date">(.*?)</span></div><div\ class="message"><span\ class="escaped">(.*?)</span></div>#mi

972 ◆/vmukiyuzw:2017/04/25(火) 01:43:04
>>971 補足
現状はまだ流動的で正確に把握しているわけではないのですが、
read.cgi 06系が動いているサーバもまだあると思われるので、
>>971 は >>963 に対する修正というわけではないのでご注意ください。
(両方生かしておいて使い分ける必要がある)

さらには read.cgi 05系(>>936)が動いてるサーバも未だ存在しますし
bbspink はそれらとはまた異なり >>964 になります。
つまり現状4パターンを使い分ける必要があります。
htmltodatByFiddlerではどのパターンか自動判別して使い分けるようにしてますが
htmltodatでは申し訳ないですがユーザーが判断して使い分けるしか今のとこありません。

あと、htmltodatに昔からある正規表現一覧の中に
「read.cgi7.00?」 というのがあるのですが、
これは今回の2ch側のバージョンアップ read.cgi 07.0.0 とは別物なので
混同しないようにしてください。
(管理している人が変わっていつのまにか元のバージョン番号に戻ってしまった感じ?)

973970:2017/04/25(火) 06:09:49
>>972
ありがとうございます。無事取得できました。

974名無しさん:2017/04/26(水) 00:11:43
いつもお世話になります。私も変換できました。
ありがとうございます

975名無しさん:2017/04/30(日) 04:59:32
色々探しまくってこのスレにたどり着きました
過去ログが何故かgoogleとかで検索すると読めるけど
何故かjaneで見ると読めなくて困ってました
>>971 を試したら出来ました
ありがとです

976 ◆/vmukiyuzw:2017/05/05(金) 23:49:20
2chのread.cgi 07系にバージョンアップ(07.0.1)があったので
対応したものを反映しておきます。
>>971への修正ということになります。


コメント:
# 2chのread.cgi 07系からの出力を変換-20170505
# 2chのcgi仕様変更(07.0.1)に対応

URLの変換:
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# BE周りの処置
s#<img src=".*?//(img\.2ch\.net/.+?)">#sssp://$1#igk
s#</span><span class="be .*?><a href=".*?//be\.2ch\.net/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグを除去
s#<img src=".*?(//.*?)">#sssp:$1#igk
# IDの前に付くようになった不要なタグを除去
s#</span><span class="uid"># #igk

正規表現:
m#<span\ class="number">([0-9]+).+?<span\ class="name"><b>(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></span><span\ class="date">(.*?)</span></div><div\ class="message"><span\ class="escaped">(.*?)</span></div>#mi

977名無しさん:2017/05/06(土) 15:38:22
いつもありがとうございます
非常に助かっております

978名無しさん:2017/05/06(土) 17:42:50
日がだいぶ長くなった夕方〜…w

979名無しさん:2017/07/05(水) 10:11:06
また1行が長すぎるか正規表現が正しくないようですって出て
変換できなくなりました

980名無しさん:2017/07/05(水) 10:12:42
やっぱり昔の使ったら出来ました
すみませんでした

981 ◆/vmukiyuzw:2017/07/05(水) 22:14:25
状況説明がほぼないので推測にすぎないですが
2chのread.cgiが07系にバージョンアップしていた鯖が
鯖移転により06系に戻ってるケースが多く見られるようですので
その関係ですかね。
まあread.cgi 07系はいろいろ問題があってそれが改善されないまま今に至るんで
個人的には「07系の不具合を直せないんなら06系に戻すべき」と思います。

982名無しさん:2017/07/06(木) 15:33:16
いつもありがとうございます(`Д´)ゞ

983名無しさん:2017/08/21(月) 17:06:29
いつも利用させていただいてます
ありがたい

最近知ったのですが
dat保存ボタンを押してファイルダイアログボックスが表示したとき、
Alt+↑キーで上の階層に素早く移動できる

984名無しさん:2017/10/02(月) 17:00:19
過去ログが5chになってhttpsになって、そのまま入力してもみつかりませんでしたになっちゃうね
しょうがないから5chのログ落としてローカルhtmlファイルとして食わせてdat変換できるようになった

985名無しさん:2017/10/02(月) 20:38:11
久しぶりに"htmltodat.exe"を起動した〜

986 ◆/vmukiyuzw:2017/10/03(火) 00:16:04
>>984さん
すみません。
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/
のほうがちょっと大変でまだいろいろありそうなので・・・
最近では向こうでいろいろやってうまくいった結果をこっちにフィードバックしてる形なので
向こうが落ち着くまで並行してこちらをサポートするのは難しい感じです。

987名無しさん:2017/10/03(火) 00:34:54
httpsのs抜くだけで正規表現も変えずに今まで通り変換できたよ
全板確認したわけじゃないけど

988984:2017/10/03(火) 10:28:51
>>986
ああ、急ぎませんから大丈夫ですよ。ひと手間かかるとはいえ使えてますから
>>987
確かにいけるね。ありがとう

989 ◆/vmukiyuzw:2017/10/29(日) 01:10:04
久しぶりですがバージョンアップしました(0.11.9)
 ・https://〜 のURLにとりあえず対処。SSL/TLSに完全対処できたわけではない。
 ・2ch(5ch)でTITLEタグの形式が修正されたので対応。

最近の2ch(5ch)のURLがhttps://〜 に変更されつつあるので、
とりあえずhttps://の入力だけでも受け付けるようにしないとまずいと思い修正しました。
URL欄にhttps://と入力してもエラーにならないようにしただけで内部的に
SSL/TLSに対処したわけではないので、
「受信オプション」-「URLの変換」でhttps→httpに変換することが前提です。

現状、
read.cgi 05系 >>936
read.cgi 06系 >>963
read.cgi 07系 >>976
bbspink >>964
のprm形式ではこの変換をやっているつもりなので
これらを使っておられる方なら問題ないと思うのですが。
(いや、よく見ると05系は対応してないな・・・^^;)

990 ◆/vmukiyuzw:2017/10/29(日) 01:50:14
ちょっと長くなるので続きます。

>>987さんの指摘にあった「httpsのs抜くだけでいける」というのは、
htmltodatは内部的にhttpレスポンス301や302のリダイレクトは自動で追尾するようになっているので
.2ch.netのURLから.5ch.netに追尾してうまくいってたんだと思います。
これも「URLの変換」で2ch.net→5ch.netに読み替えるのが正しい対処なのかもしれません。

あと、SSL/TLSに対処したわけではないと書きましたが実は以前から試し中で
環境によっては動く(https://のURLでも取得できる)かもしれません。
(あまり色々な環境で試したわけではないので動作を保証できない)
libeay32.dll,ssleay32.dllがある環境なら動くかも・・・

991 ◆/vmukiyuzw:2017/10/29(日) 05:42:26
うわわわわ申し訳ない
トップページを更新してなかったです・・・
凡ミス申し訳ないです

上2レスの書き込みを見てダウンロードされた方は
前のバージョン(0.11.8)をダウンロードされてると思うので
ダウンロードし直してください。
本当にごめんなさい。

992名無しさん:2017/10/30(月) 13:41:28
0.11.9落としてまっさらのところから使ってみました
試しに
http://yomogi.2ch.net/test/read.cgi/kaden/1436017606/
で取得時に「Could not load SSL library.」と出たのでOpenSSLのライブラリを入れたら取得できるようになりました

対応ありがとうございます

993名無しさん:2017/11/09(木) 17:03:36
ログ速、また変化ですかね?
https://www.logsoku.com/r/2ch.net/korea/1073404182/
がダメでした

#本家から消えてるdatがちらほらあるなあ…

994 ◆/vmukiyuzw:2017/11/10(金) 23:32:18
>>993さん
挙げられたスレのように 2ch(5ch).net 上には見つからないスレも
少なからずありますよね。であればログ速の動向もチェックしとかないといけないか・・・

ここでログ速を扱ったのは最近では >>820>>940-946 あたりですが
そこからログ速の形式は結構変更されているようです。
で、対応したprm形式を以下に・・・とその前に一点留意事項。

現在のログ速は https に完全対応したようで、http:// のURLでアクセスしても
https:// にリダイレクトされてしまうようです。
なので、SSL/TLS暫定対応のhtmltodat 0.11.9を使う必要があるし
OpenSSLのdllの導入も必要です。
でも、https:// のリンクを貼っておられるので>>993さんは
多分その辺は理解して頂いてると期待して・・・
SSL/TLS対応についてはまたあらためてちゃんと書きます。

例によって(?)前置きが長くなってしまったのでprm形式は次レスで。

995 ◆/vmukiyuzw:2017/11/10(金) 23:34:27
>>994続き


コメント:
# ログ速変換用-20171110
# html形式の変更に対応

URLの変換:
s#http://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://logsoku.com/r/2ch.net/$2/$3/#

前処理:
# スレタイ補正
s#(<title>)(.*?) \| \S*?(</title>)#$1$2$3#ik
# ニュー速等のアイコンを2ch形式に補正(663さんのものをアレンジ)
s#<img src="http://cdn.logsoku.com/(img.2ch.net/ico/.+?)&quot;&gt;#sssp://$1#igk
# 「〜回発言」を取り除く(663さんのものをアレンジ)+ID周りの変更を反映
s#(ID:)<a class="id_color.*?>(.*?)</a>(.*?) ?\[.*?\] #$1$2$3#igk
# ニコ動やyoutubeのサムネイル削除
s#<div class='video.*?>.*?<img .*?></div>##igk
s#<(iframe|img class).+?<br/>##g;
# <br/>タグに対応してない専ブラへの対応
s#<br/>#<br>#igk

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>

正規表現:
m`
(?# レス番号) <dl\sid="(\d+)".*?
(?# 名前) <span\sclass="n?em">(?:<b>)?(.*?)(?:</b>)?</span>.*?
(?# メール欄) \[(.*?)\].*?
(?# 投稿日・ID) :(.*?)</dt>\s
(?# レス内容) <dd>(.*?)</dd>
`imkx

996名無しさん:2017/11/11(土) 15:47:34
>>995
対応ありがとうございます
無事変換できました

997 ◆/vmukiyuzw:2017/11/18(土) 01:23:36
htmltodat-convert2改をリリースしました(htmltodat-convert2_20171117)

これは、663さん(mirrorhenkanさん)が作成されて
http://mirrorhenkan.g.ribbon.to/jane/htmltodat-convert2/
で公開されていたもので、htmltodatのバッチ呼び出し機能を利用して
Jane系の専ブラから外部コマンドでdat変換できるようにしたものです。

近頃の2ch(5ch).netの仕様変更により修正が必要になっていたので、
mirrorhenkanさんにご連絡して許可を頂き、改造・再配布させてもらう
ことになりました。mirrorhenkanさんありがとうございます。

修正内容は https と 5ch.net への対応といった程度のことなのですが、
5ch.net 対応はスクリプトの手修正が必要になる場合があります。
(readme2.txt参照)
これは本当は自動判定が可能なのですが、元のスクリプトの作りに
影響しそうだったんでとりあえず安直な方法で対応しました。
今後いい方法をまた検討したいと思います。

998 ◆/vmukiyuzw:2017/11/18(土) 01:47:38
> (readme2.txt参照)
改_readme.txt の間違いでした。(この名前をどうするかで実は結構悩んだ)

正直、gethtmldatみたいなもっと取り扱いが簡単で便利なものもあるので
htmltodat-convert2にいまさらニーズはあるだろうかとは思いました。
が、最近たまたまログ速の話題が出たので、
「ログ速等外部サイトを読むのにまだ使えるじゃん」と考え、
まだメンテしておく必要があるかなと思いました。

999名無しさん:2017/12/14(木) 13:46:06
http://peach.archive.ailesblanc.com/
桃羽書庫という所でログ見つかったのだけど
正規表現教えて下さい。<(_ _)>

1000 ◆/vmukiyuzw:2017/12/15(金) 00:31:49
>>999さん
できればこういうご質問では、TOPページだけでなく
具体的なスレへのURLも貼って欲しいです。
(こちらで検索してスレを探さないといけなかったので^^;)

さて、件のサイトのTOPページには
「生datは専用ブラウザでアクセスしてください」とのコメントがあります。
ということはdat形式に直接アクセスできるということでは?と思い
http://peach.archive.ailesblanc.com/erog/dat/1298449985.dat
みたいなURLを試してみたのですが read.cgi にリダイレクトされてしまいます。
が、「専用ブラウザで」の一言が気になったんで試しにUAをMonazillaのものにしてみると
dat形式で取得できることがわかりました。
(なんなら、外部板扱いで専ブラに登録したら直接読めるのでは?とも思ったのですが
subject.txtがないようなのでそれは無理なようでした)

一応正規表現でのHTMLからのdat変換も考えてはみたのですが、datで取得できるなら
その方が楽なので保留にします。どうしてもHTML形式で取得したいということなら
またご相談ください。



コメント:
# 桃羽書庫からdatを取得-20171215
# htmltodat変換を行わずdatを直接取得する
# User-Agentの設定がポイント

HTTPヘッダの追加:
User-Agent: Monazilla/1.0

URLの変換:
# read.cgiへのリクエストをdatへのリクエストに変換
s#https?://(.*?)/test/read\.cgi/(.*?)/(\d+)/.*#http://peach.archive.ailesblanc.com/$2/dat/$3.dat#

dat変換をしない(前処理のみ行う):
true

1001名無しさん:2017/12/15(金) 16:59:15
>>1000さまありがとう。datにできました。<(_ _)>
ピンクで恥ずかしくて・・・。以後恥ずかしく無い
スレ探してURL貼るように努めます。
(って、トップにエロゲ3板って書いてあるし(恥)

生datはirvineで落としてみたら、中身htmlで諦め
たんだけど/erog/dat/にしたら落とせました。

本当にありがとう。

1002 ◆/vmukiyuzw:2017/12/15(金) 21:25:12
>>1000
> (なんなら、外部板扱いで専ブラに登録したら直接読めるのでは?とも思ったのですが
> subject.txtがないようなのでそれは無理なようでした)

と書いたのですが、専ブラの種類にもよるかもしれませんが
外部板として登録して専ブラに認識させれば
専ブラのURL欄に入力することでdatでの取得ができるようです。
>>1000の例でいえば
http://peach.archive.ailesblanc.com/erog/ を外部板として登録し
http://peach.archive.ailesblanc.com/test/read.cgi/erog/1298449985/
のURLを入力)

この方法であればもはやhtmltodatは不要ですw
まあでも、最終的には元の板のログとして読みたいと思われるので
手動でログをマージする手間が多分必要になり
どっちが楽/簡単かは何とも言えないですが。

1003名無しさん:2017/12/16(土) 00:57:15
>>1002さま
何度もありがとう。<(_ _)>
外部板登録で読めました。楽です。

Janeでリンク右クリから”リンクを桃から読む”
とかで元板にDLできればいいのですけどね。

1004 ◆/vmukiyuzw:2017/12/16(土) 01:56:23
>>1003さん
もはや蛇足かもしれませんが

> Janeでリンク右クリから”リンクを桃から読む”
> とかで元板にDLできればいいのですけどね。

ということなら、>>997で書いた htmltodat-convert2改 を使うという手もありますよ。

・htmltodat.exeと関連dllをJane2ch.exeと同じフォルダに置く
・htmltodat-convert2.wsf(http://mukiyu.g.ribbon.to からダウンロード)を同じフォルダに保存
・レス>>1000 後半の内容をテキストファイルで「桃羽書庫.prm」の名前でやはり同じフォルダに保存
・Janeの外部コマンドで

 wscript "$BASEPATHhtmltodat-convert2.wsf" "$LINK$URL" "桃羽書庫"

でお望みの形に近くできるかもしれません。

1005名無しさん:2017/12/16(土) 14:04:43
今頃気づいたけどコテだったのね。^^;
ありがとう>>◆/vmukiyuzwさま。
更に>>1000のはprmだったのね。
今までhtmltodatの入力欄に書いて、毎回セット
してました・・・ :Drz

書式理解不能で、>>1000のrpmをまんま使いま
したらエラー無く読めましたけど、まずいですか?

1006 ◆/vmukiyuzw:2017/12/16(土) 21:56:37
>>1005さん
> 書式理解不能で、>>1000のrpmをまんま使いま
> したらエラー無く読めましたけど、まずいですか?

prmの形式は、特に書式を分からなくても
単にコピペすればいいようにしているので
それでうまく動いているのであれば特に問題ないと思います。

ただ、専ブラのレスからコピペする場合、
Replacestr.txt等の機能が作用してレス内容が置き変わってしまい
不具合の原因となったことが以前ありました。
なのでこのスレからのコピペでprmを作る場合はできれば専ブラではなく
汎用ブラウザを使うことをお勧めします。

10071005:2017/12/17(日) 00:15:45
>>◆/vmukiyuzwさま
ブラウザから貼り直しました。
ほんとにほんとにありがとう。<(_ _)>

1008名無しさん:2017/12/19(火) 09:35:18
変換中。しばらくお待ち下さい。。。

1009 ◆/vmukiyuzw:2018/05/05(土) 00:11:16
バージョンアップしました(0.11.10)
 ・SSL/TLSに対応した。

これでhttps:// のURLへのアクセスもできるようになったと思います。

OpenSSLのdllの導入が必要になります。
http://indy.fulgan.com/SSL/ の openssl-ほにゃらら-i386-win32.zip の一番新しいやつを
ダウンロード・解凍して libeay32.dll と ssleay32.dll をhtmltodat.exeと
同じフォルダーにコピーして下さい。
(OpenSSLのライブラリは最近いろんなプログラムで使われているので
Windowsのシステムフォルダに置くよう推奨したほうがいいのかな?
また、頻繁に更新されているライブラリなので最新の情報をウォッチしておく必要も
あると思われます)

前バージョンまでが「SSL/TLS暫定対応」だったのは、
今まで使っていたコンポーネントがTLS1.2に対応してなかったためです。
TLS1.2対応にはコンポーネントのバージョンを上げる必要があったのですが、
互換性の部分で不具合が出がちと聞いていたので二の足を踏んでいました。
ですが、意を決してやってみるともちろん不具合はいくらか出たのですが
意外に楽に対処できたのでまあ良かったかなと思います。

現在使われているprmファイル等への影響は基本的にはないはずですが
なにかありましたらここへご連絡ください。

1010名無しさん:2018/06/21(木) 15:35:29
eggサーバーなどで使われている read.cgi ver 07.1.0 2017/10 Walang Kapalit ★
で使える正規表現のパターンがあれば教えていただけないでしょうか

1011 ◆/vmukiyuzw:2018/06/22(金) 00:00:21
>>1010さん
変換自体は>>976 でできるはずですが5chへの対応ができてない部分とか
冗長な部分とかあったので修正しておきます。
2018/06/21現在 bbspink で使われている 07.2.0、運用情報等のagree鯖で使われている 07.2.1 にも対応。


コメント:
# 2chのread.cgi 07系からの出力を変換-20180621
# 2chのcgi仕様変更(07.1.0 - 07.2.1)に対応

URLの変換:
# htmltodat 0.11.10以降を使っていればこれはなくてもよい
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# BE周りの処置
s#</span><span class="be .*?><a href=".*?//be\.(?:[25]ch\.net|bbspink\.com)/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a(?: class="image")? href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグを除去
s#<img src=".*?(//.*?)">#sssp:$1#igk
# IDの前に付くようになった不要なタグを除去
s#</span><span class="uid"># #igk
# 07.2.1で追加された不要な要素を除去
s#<><span class="AA">(.*?)</span><>#<>$1<>#igk
s#(target="_blank").*?>#$1>#igk

正規表現:
m#<span\ class="number">([0-9]+).+?<span\ class="name"><b>(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></span><span\ class="date">(.*?)</span></div><div\ class="message"><span\ class="escaped">(.*?)</span></div>#mi

1012名無しさん:2018/10/04(木) 15:03:16
vip・実況系の画像関係の仕様が変わったようで、htmltodatで変換すると
<a class="image" href="http://jump.5ch.net/?https://xxx.jpg&quot;&gt;https://xxx.jpg&lt;/a&gt;
という文字列が入るようになりました。
このdatを専ブラで表示すると、
http://jump.5ch.net/?https://xxx.jpghttps://xxx.jpgの二種類のリンクが表示されるようになります。
ご対応していただけたら幸いです。

1013 ◆/vmukiyuzw:2018/10/04(木) 23:58:16
>>1012さん
それは多分、read.cgi 07.2.1 と呼ばれているものが
当初agree鯖(運用系のサーバ)でだけ使われていたものが他のサーバにも
適用されてきている状況かと思います。
で、それへの対応ということなら>>1011で出来ている筈なのですが。
s#<a(?: class="image")? href="http.*?>(.*?)</a>#$1#igk
の行がその問題に対処しています。

もし>>1011を適用してもうまくいかないという場合、
専ブラでなく汎用ブラウザで>>1011のレスを表示しそれをコピペして
prmファイルを作り直してみてください。
(専ブラからコピーするとReplaceStr等の機能で正しくコピーできない可能性がある)
それでもうまくいかない場合は該当のスレのURLをお教えください。

1014名無しさん:2018/10/06(土) 11:11:16
>>1013さま
コピペした所、問題なく変換出来ました!
ご対応して頂きありがとうございます。

1015名無しさん:2018/11/25(日) 16:11:37
現在のみみずんで使える正規表現ありませんか?

1016 ◆/vmukiyuzw:2018/11/26(月) 19:57:03
>>1015さん
現在のみみずんの状況があまりよく分かってないので
みみずんでのスレのURLをいくつか例示して
頂けないでしょうか。

1017名無しさん:2018/11/28(水) 07:33:33
みみずん
http://mimizun.com/log/2ch/girls/1257859037/
ここもメルアドがcdnになってます

1018 ◆/vmukiyuzw:2018/11/29(木) 01:07:27
バージョンアップしました(0.11.11)
 ・0.11.4で取り入れたメール欄難読化のデコード処理を復活

「メール欄難読化のデコード処理」については、
>>819あたりから問題になって>>821(v0.11.4)で対応したのですが
その後(2015年3月頃?)2chでは難読化は行われなくなったので
htmltodatの処理としては無効にしていました。

が、>>1015,1017さんのご指摘によりみみずんではまだ難読化は行われてるということなので
デコード処理を復活させました。
(コメントアウトしていたのを外しただけですが^^;)

で、これを前提としての現在のみみずんでの正規表現等は次レスで。

1019 ◆/vmukiyuzw:2018/11/29(木) 01:47:55
みみずんの変換についてはかなり前ですが>>710 のころは
dat形式でアクセスすることが可能だったんですが今では無理みたいですね。
で、html形式は>>711のころとさして変わってないようなんですが
若干変更されてる部分と難読化デコードを含めて以下のようにしてみました。



コメント:
# みみずん(mimizun.com)変換-20181128

前処理:
# 名前欄のemail-protectionをデコードする
s`<a href="/cdn-cgi/l/(email-protection)".+?data-cfemail="(.+?)">\[email.*?\]</a>`$1#$2`ikg
# メール欄のemail-protectionをデコードする
s`(<a href=)"/cdn-cgi/l/(email-protection#.*?">)`$1"mailto:$2`ikg

後処理:
s`<br ?/>`<br>`g
s`<time .*?>(.*?)</time>`$1`g

正規表現:
m`
<div\ class="contributor"><a\ name="(\d+)">.*? #レス番
<span\ class="handle">(?:<A\ HREF="mailto:(.+?)">)? #メール欄
(.+?)(?:</A>)?</span> #名前欄
:(.*?)</div> #投稿日
<div\ class="res">(.*?)</div> #レス本文
`mikx

1020名無しさん:2018/12/01(土) 08:50:34
>>1019
>>1015さんとは無関係の者です
> dat形式でアクセスすることが可能だったんですが今では無理みたいですね。
に驚いて確認してみましたが、dat形式でDLできました(wgetで、ですけど…)
datでDLできないのが「URLが.datでもHTML形式になってしまう」のなら
おそらくUser-Agentに Monazilla が含まれていないのが原因です
cf. ttp://mimizun.com/blog/2008/09/dat.html
  ttp://mimizun.com/blog/2012/02/post-694.html

…というか、mukiyuさんはご存じのはずでしたね
対応した結果が >>572 で、でも >>908 でダメになった、と。

というわけで、 >>1000 のようにすればよいのではないかと思います
>>1000 との違いは、URLの変換のところを
s#https?://(.*?)/test/read\.cgi/(.*?)/(\d+)/.*#http://mimizun.com/log/2ch/$2/$3.dat#
に変えるだけだと思うのですが、テストしたら文字化けしたので(おそらくおま環)
正しいか確認できていません

ここからはhtmltodatと関係なくなってしまうのですが、もしJaneXenoを使っているなら
設定で「みみずん検索から過去ログを取得」にチェックを入れるとみみずんからdatを取ってくれます
このとき、"過去ログだと判定させる"のがミソで、板一覧を先に更新しておかないと失敗することがあります
(JaneXenoはAPI非対応で、公開も終了しています)

余談ですが、wgetでHeaderを取得するとこんな感じでした(一部)
ttp://mimizun.com/log/2ch/girls/1257859037.dat
Content-Type: text/download
Last-Modified: Mon, 06 Feb 2012 15:17:25 GMT
Vary: Accept-Encoding
Server: cloudflare
みみずんさんcloudflareを導入されたようですね メールアドレス難読化はおそらくcloudflareがやっています
2chでメール欄難読化をやめた後くらいに知ったのですが、cloudflareを利用するとき
難読化するかオプションで選べるらしいです
2chは途中で 難読化する→難読化しない に変更したわけで、みみずんさんも変更されるかもしれません
あと、Content-Lengthがない…
実際にDLしてみると 153,432 byte で、dat形式で、JaneXenoに入れてちゃんと読めました
JaneXenoの「みみずん検索から過去ログを取得」で取得したdatとも一致します
エンコードはSJISですし、なぜhtmltodatで文字化けするのか… まあゆっくり検証します
あと、datのメール欄は難読化されたりしません。当然か。

長々とごめんなさい

1021 ◆/vmukiyuzw:2018/12/02(日) 00:52:35
>>1020さん
検証いただきありがとうございます。大変助かりました。
みみずんのdatにアクセスできないのがUser-Agentのせいだったとは盲点でした、
5chへの影響ばかり気を取られていたので。
で、文字化けに関してですが、決しておま環などではなくこちらでも再現しました。
>>1000 でも文字化けしますね。

調べてみると、以前のバージョン(0.11.9とか)だと発生しないんで、
>>1009 から採用した通信コンポーネントIndy10の仕様と現在のhtmltodatの仕様の
食い違いが原因なようです。
(htmltodatでは自力で文字コード変換をやろうというつくりになっているが
Indy10ではIndy10側で文字コード変換をやろうとしているようでそこがぶつかっている)

解決策はいくつか考えてるのですがまだ調べないといけないことが多くあり
ちょっと時間かかりそうです。
当面は、>>710>>1000のような「htmlを介さずdatを取得」する方法は使えない
ということでお願いします。(htmltodatのバージョンを0.11.9に落とせば可能ですが)

10221020:2018/12/02(日) 09:58:31
>>1021
おう、まじすか。
UAの件は >>572663 ◆fnwcOWFi56さん(mirrorhenkanさん)の掲示板でやりとりされていましたが

10231020:2018/12/02(日) 10:03:49
まだ投稿するつもりじゃなかったのに…
webarchiveに拾いに行くのでちょっと時間かかりそうです

10241020:2018/12/02(日) 12:09:59
…気をとりなおして。(さっきのは半/全キーとTABを押し間違ったらしい…)
>>1021
UAの件は >>572 の直前に
663 ◆fnwcOWFi56さん(mirrorhenkanさん)の掲示板でやりとりされていましたが
わいわいかきこ、まるごと無くなりましたからね…
>>911 というのがあったんでwebarchiveに探しに行ったんですが、どうやらないようです
もしローカルにdatが残っていらっしゃるなら
メモ4
ttp://yy14.kakiko.com/test/read.cgi/mirror/1213700846/109-119
を見て頂ければ。(しかし、もう10年も前とは)

文字化けの件は私の側でできることは今のところない、でいいのかな
別にdat変換してないのでhtmltodatでなくてもいいんですが
私みたいにwget使っちゃうような人はともかく
初心者がUser-Agentを任意のものに変更するのにこれ以上簡単な方法が思いつきません
(上のmirrorhenkanさんの掲示板に出てきたmimizun.jsとかgetlog.wsfとか今でもあるんだろうか)
まあみみずんを読むのは >>1019 でできるようなので、なんとかなるでしょう

1025 ◆/vmukiyuzw:2018/12/03(月) 02:06:11
>>1024さん
> もしローカルにdatが残っていらっしゃるなら
> メモ4を見て頂ければ。(しかし、もう10年も前とは)

dat残ってました。確かに10年前ですね。忘却の彼方でした^^;
663さんの説得で私が折れた感じですかね。あの頃のバージョンアップは
そういうパターンが多かった気がw。663さんお元気だろうか・・・
(htmltodat-convert2の件で一回メールでやりとりしたんですが>>997
しかし、わいわいかきこの消滅は悲しかったですね。このスレにも
リンクがいっぱい貼ってあるのに。私はログを持ってるので読めますが
ほとんどの人には飛べないリンクですよね。
したらばはなんだかんだありながらも続いてるので有り難いなあ。

1026 ◆/vmukiyuzw:2018/12/03(月) 02:22:11
今から見ると面白いなあと思うのが、663さんに対する私の発言で
(みみずんではUAをMonazillaにすればdat直読みできるという話題)

> 110 名前: ◆/vmukiyuzw [sage] 投稿日:08/09/21(日) 00:05:06 ID:f6dOajKh
> > htmltodatの受信ヘッダで
> > 送信するUAのデフォルトをMonazillaにして頂けたら嬉しいです。
>
> いわゆる「2ch専用ブラウザ」としての機能は何も持ち合わせてないのに
> UAでMonazillaを騙るのはおこがましいというか詐欺っぽいので
> あまりやりたくないです。
> # まあやったところで何か実害が出るとかいうことはないとは思いますが・・・
>
> 筋道としては、問題と思われるなら整理してみみずんさんに提示するほうが先では?
> てもうされてたならすみません。

などと語っていること^^;
このときは後に「専ブラでもないくせに何でUAでMonazillaを名乗ってるの?」とか
叩かれることになろうとは想像もしてなかったですw

1027 ◆/vmukiyuzw:2018/12/18(火) 21:17:14
バージョンアップしました(0.11.12)
 ・0.11.10で導入したIndy10により発生した文字化け問題に対応。

>>1020-1021で発覚した文字化け問題への対応です。

以前使っていた通信コンポーネントIndy9では、HTTPのGET処理を実行して返ってくるデータは
サーバが返してくるほぼそのままだったので、gzipの解凍だとか文字コード変換とかは
全部アプリ側でやらなきゃいけなかったんです。
けどIndy10ではその辺をある程度やってくれる・・・ので楽になった部分もあるのですが
文字コード変換に関しては私見ですがいまいちな感じ。うちの開発環境が古いんで
それとの相性かもしれませんが。
HTTPレスポンスヘッダのCharSet等から文字コードを判別してるようなのですが
>>710>>1000みたいなdat形式でアクセスする場合CharSetは指定されておらず、
その場合全然違う文字コードと解釈されて変な変換されて結果文字化けしてしまう、
という状況のようでした。
(html形式でのアクセスの場合はCharSetは大抵指定されてるので問題なかったと思われる)

で、結局、文字コード変換を行わない別のGET処理が用意されてるのを見つけたので
そっちを使うよう変更しました。
(つまり文字コード変換は従来通り自力でやる)

プログラムとしては数行の変更ですが内部処理はかなり変わってると思うので
いろんなサイトでテストしたつもりですがもし問題あればご連絡ください。

1028名無しさん:2018/12/19(水) 22:12:22
>>1027
乙でございます

いくつか試してみて今のところ問題ありません

1029 ◆/vmukiyuzw:2018/12/20(木) 21:32:31
別件で調べものしててたまたま見つけたんですが。
>>1024-1026で出てきた663さん(mirrorhenkanさん)の掲示板ですが
http://mirrorhenkan.r.ribbon.to/b/board/
で復活されてたんですね。2015年2月ごろでしょうか。
わいわいかきこ時代のログも移されてますし専ブラでも外部板登録すれば読めます。

で、専ブラでこの板のログを取得し、
http://yy14.kakiko.com/mirror/
も外部板登録してそちらにsubject.txtとdatをコピーすれば、
例えば>>737のようなリンク切れして見られない663さんの板へのリンクが
見られるようになるのではないかと思います。

かつていろいろやりとりしhtmltodatの機能アップにつながるご意見を
色々頂いたので、そのログがwebarchiveとかじゃなく見られる形であるのが
嬉しいです。

10301020:2018/12/22(土) 09:00:10
>>1029
>>1024=1020っす おー、朗報ですね
kakiko時代のスレを読む方法として他に、Jane系のようなレスの置換機能のある専ブラなら
ttp://mirrorhenkan.r.ribbon.to/b/board/ を外部板登録して
<rx2>h?ttp://yy14\.kakiko\.com/test/read\.cgi/mirror/【TAB】<font color=green>[yykakiko]</font> ttp://mirrorhenkan.r.ribbon.to/b/test/read.cgi/board/【TAB】msg
てな感じでリンクの方を置換しちゃうのもありです
これなら ttp://yy14.kakiko.com/mirror/ のほうは外部板登録しなくてよいので

1031名無しさん:2019/01/27(日) 06:04:34
受信オプションボタンを押してURLの変換のところで
次の2つを変換したいと思いますが2つ目の変換がされません
s/2ch/5ch/
s/https/http/
実際の記述はどのようにすればよいのでしょうか?

1032 ◆/vmukiyuzw:2019/01/29(火) 00:24:11
>>1031さん
こちらで検証してみても特に問題はないので記述に問題はないと思われます。
何をもって2つ目の変換がされないと思われたのでしょう?
私の環境ではプロキシソフト(Proxomitron Rebornてやつ)で通信ログを見て
正しく変換されてると思ったのですが。

1033 ◆/vmukiyuzw:2019/01/29(火) 00:32:59
ちなみに、htmltodatでは現在のバージョンではSSL/TLSに対応しているので
s/https/http/
これは不要のはずです。(httpsのアドレスでもアクセス可能)

10341031:2019/01/30(水) 05:47:37
>>1032
解決しました。
古い0.11.8を使用していました。
せっかく作者様がいろいろ対応して下さっている最新版を使わずに質問してすみませんでした。
あまりよく理解していないままですが便利に使用させて頂いております。
変換がうまくいかない場合はサポートBBSにある正規表現を使ってみてうまく行ったら後は何も触らず似使っています。
https://の場合はURL貼り付け後にsを取るためにIビームポインタを合わせるのに苦労していました。
また、2ch.netでうまくいかなくなってきて5ch.netに修正するときにも面倒な作業をいちいち操作して使っていました。
いざ自分の直面している問題に関係しているとBBSの内容も少しずつ理解できるようになってきました。
OpenSSLのところのダウンロードもうまくできました。

このようなソフトウェアを使わせて頂きありがとうございます。
普段はブラタモリの録画を見ながら実況スレを探し出してJaneStyleで見るといういうような使い方が多いです。
放送後間もないときは実況Headline板で該当URLを1個ずつコピーしています。
日にちが経ってしまったときはGoogleでsite:5ch.netのようにサイト指定して当時のスレを探しています。
とにかくこのソフトがあってこそ、です。

配布ページの下の方にあるAmazonのリンクを経由して、少額だと思いますが買い物するようにします。
ありがとうございます

1035 ◆/vmukiyuzw:2019/01/31(木) 02:17:26
>>1034さん
htmltodatの使い方というわけではないのですが

> 普段はブラタモリの録画を見ながら実況スレを探し出してJaneStyleで見るといういうような使い方が多いです。
> 放送後間もないときは実況Headline板で該当URLを1個ずつコピーしています。
> 日にちが経ってしまったときはGoogleでsite:5ch.netのようにサイト指定して当時のスレを探しています。

こうやって過去ログを追っかけるときは、
板TOP(NHK実況ならhttps://nhk2.5ch.net/livenhk/)から
「過去ログ一覧はこちら」をクリックして出てくる過去ログの一覧
https://nhk2.5ch.net/livenhk/kako/kako0000.htmlとか)を見る方が
はかどるかもしれません。
まあこっちもあまり日にちが経ってしまうとしまうと見られなくなるみたいですが
Googleだと流れのはやいスレは追えないことがよくあるのでそれよりは確実な気がします。。

> 配布ページの下の方にあるAmazonのリンクを経由して、少額だと思いますが買い物するようにします。

配布ページは無料レンタルサーバなのでそんなことされても私には一文も入ってきません^^;
道楽でやってることですのでお気遣いなく。

1036名無しさん:2019/01/31(木) 07:41:02
最初に謝っておきます。◆/vmukiyuzwさん、htmltodatに関係ない話してすみません!!

>>1034
そんなあなたに便利なサイトをご紹介。(中の人ではありません)
ttp://2chlog.com/2ch/live/calendar.php?ita=livenhk
ここから日付に飛ぶとその日に立ったスレの一覧が見られ、(10桁の数字).datを右クリでダウンロードすると
datが手に入ります(htmltodatで変換しなくてよい)
スレ立て基準なので、ブラタモリなら放送日を見ればよいですが
深夜番組などの場合は当日と前日の両方を見たほうがよいです
NHK以外の板もありますが、テレビ実況系のみです

>>1035
日にちが経っても見られるはずですよ
ただ、Listがスレッド番号表記のみなので、スレ立て日がわかっていても
(だいたいの)UnixTimeに直すのがちょっと面倒ですね
昔実況系板のkako####.html生成がなんかで失敗してたことがあったんですが
(【pastdat】新型DAT落ち装置●旧おせっかい Part.4 [無断転載禁止]©2ch.net
 ttp://carpenter.2ch.net/test/read.cgi/operatex/1462280087/389-391,434 2016/05でした)
Mangoさんがそっこー直してくれたんで、あるはずのスレが一覧になかったら報告すれば直ると思います

1037 ◆/vmukiyuzw:2019/02/01(金) 22:41:01
>>1036さん
便利なサイトご紹介いただきありがとうございます。
ミラーサイトってのも今時なかなか運営が難しそうな気がするのですが
頑張ってる方もまだおられるのですね。

> ただ、Listがスレッド番号表記のみなので、スレ立て日がわかっていても
> (だいたいの)UnixTimeに直すのがちょっと面倒ですね

確かにそうだと思ったので、過去ログ一覧ページにあるスレッド番号らしき記述を
年月日時分秒に変換するブックマークレットをとりあえず書いてみました。
ただあのページ自体使い勝手はかなり悪いのでこれぐらいでたいして
改善されるわけではないんですが。

javascript:(function(){document.body.innerHTML=document.body.innerHTML.replace(/(\d{9,10})((?=[\-\s\<])|\.dat)/g,function(ma){var n=ma.replace(/\.dat/,"")-0;n*=1000;var d=new Date(n);var year=d.getFullYear();var zp=function(a){return(('0'+a).slice(-2))};var month=zp(d.getMonth()+1);var day=zp(d.getDate());var hour=zp(d.getHours());var min=zp(d.getMinutes());var sec=zp(d.getSeconds());return(year+'/'+month+'/'+day+' '+hour+':'+min+':'+sec)})})()

1038名無しさん:2019/02/16(土) 09:13:59
昨晩、ドキュメント72時間,トクサツガガガ,タモリ倶楽部,フルーツ宅配便,日本ボロ宿紀行と録画したのでJaneStyleで読むログをゲットすることに。
htmltodatで気になっていた一括変換ボタンというのを使えないかなと思いました。
いまなら実況headline板に生きてるからURLがコピーできる。

プログラムのあるフォルダに[変換前]、[変換後]という名前の二つのフォルダを作りました。
[変換前]フォルダの中にはどのようなファイルを置けばいいのでしょうか?
JaneStyleのアドレス欄は以下のようになっていて拡張子htmlではありません。
  https://headline.5ch.net/test/read.cgi/bbylive/1550230754/

Webブラウザで2chを見ているときはHTMLファイルを読み込んでいて、専用ブラウザで2chを見ているときはDATファイルを読み込んでいると理解しています。
htmlファイルを得るにはブラウザーで開くのでしょうか?開いてみましたがアドレスバーのところには
 https://nhk2.2ch.net/test/read.cgi/livenhk/1550230754/
となっていて拡張子が見あたりません。
 https://nhk2.2ch.net/test/read.cgi/livenhk/1550230754/index.html
とか
 https://nhk2.2ch.net/test/read.cgi/livenhk/1550230754.html
ということなのかな。。。アッ、これでいいのか!わかりましたw

[変換後]フォルダはテストなので作成しました。将来は[\Jane Style\Logs\2ch\実況ch\番組ch(NHK)]などを直接指定しようと思います。

それではドキュメント72時間3スレ、トクサツガガガ10スレ、タモリ倶楽部3スレ、フルーツ宅配便2スレ、日本ボロ宿1スレ
これらのURLをコピーして一つのテキストファイルの中に一行づつ、、、なんか違う。
あ、このフォルダの中に、1スレにつき1個のhtmlファイルを置いていくのか。
これだと面倒さは今までと変わらないな

なんか、こんなことをさっきまでやってました。質問しようと思っていましたがなんだかわからなくなってしまいました。
日本ボロ宿紀行の主役は朝ドラのよしのちゃんで、キャプのリンクも生きていてよかったです。

1039 ◆/vmukiyuzw:2019/02/18(月) 00:28:55
>>1038さん
「一括変換」の機能について齟齬があるかもしれません。

htmltodatの「一括変換」というのは、ローカルPC内にある複数のhtmlファイルを
いっぺんにdatに変換する機能です。
で、「そのローカルのhtmlファイルはどうやって作るの?」ていう点については
ブラウザのダウンロード機能なりダウンロードソフトなり使って
自力で何とかしてね、ということにしています。

多分期待されてることは
「このページのいくつかの(もしくは全ての)スレをいっぺんに取得して変換したい」
ということだと思うのですが、「いっぺんに取得」の部分は
使い方によってはクローラー的な動作になってしまうかもしれないので
そこはhtmltodatの機能としては実装したくない、自己責任でお願いしたい、
という思いでそういうことにしています。

もともとは、htmltodat作ったころは
過去ログをhtml形式でまとめてアップしている有志のサイトが結構たくさんあって
そこからのログを取得していっぺんにdat化するのが「一括変換」の主な目的だったんです。
そういうサイトも少なくなって、この機能使ってる人もあんまりいないんじゃないか
と思って一時期隠し機能にしたことがあるんですが
>>805さんのように「使ってる」というレスもあったので復活させた経緯もあります。

前置き的なものが長くなってしまいましたが、貴方のやりたいことを満たすには
URLのリストを入力していっぺんにダウンロードできるツールを探すか(多分いっぱいあると思う)
>>1036さんが紹介してくださったようなサイトを利用するかじゃないでしょうか。
後者だとhtmltodatは必要ないんですけどね。

1040名無しさん:2019/09/17(火) 04:58:16
おそらくトリップをNGNameに入れることが出来ないんだろう

NGしたいレス番をクリックして
NGItemに追加-NGNameに追加
(必要なら表示されている文字列の一部を削除)

1041名無しさん:2019/09/17(火) 04:59:12
誤爆スマン

1042名無しさん:2020/05/08(金) 13:54:57
こんにちは。 過去何度もお世話になっております。
そのつど丁寧に教えて下さりありがとうございます。
今回も教えてくんで恐縮ですが・・・。

スレ1に張られている前スレのリンクはそのままjaneで
読み込める場合もあるし読み込めなかったりもします。
今回は読み込めず、ブラウザで開くと
>■ このスレッドは過去ログ倉庫に格納されています
とでますが全レス読めます。
URLをhtmltodatに貼り変換すると、変換警告が開き
http://aoi.bbspink.com/test/read.cgi/hgame2/1298937799
>レス 1-3 の間が飛んでいます

と表示されますがプレビューでは抜けておらず、最後の
836まで変換されています。
datを保存しjaneで見ると最後が835と1レス少ないので
すが、よく見るとレス2が2つありました。

レス2直前の
><div id="js--banners--thread"></div>
を消すと直るようでした。

これを前処理等で自動処理するにはどうすればいいでしょうか?

1043<削除>:<削除>
<削除>

1044 ◆/vmukiyuzw:2020/05/09(土) 17:39:34
>>1042さん
(いったんレスしたのですが勘違いがあったので修正します)

bbspinkの変換については >>964 だと思っていたのですが
過去のサーバについては古いread.cgiで動いているようですね。
該当スレの最後を見ると

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★

とあります。05.04.02というバージョンは初めて見ましたが、
05系ということで >>936 の奴を試したところ
特に問題なく変換できているように思います。
どのバージョンでどれを使うかは>>989参照。


# 本当ならこの「どの正規表現等を使うか」の判断は
# htmltodat側でやるべきなんでしょうね
# でも今の機能にそれを組み込むのはメッチャ難しそうなので
# 放置中です・・・

10451042:2020/05/10(日) 05:00:48
>>◆/vmukiyuzw様いつもありがとうございます。<(_ _)>
既出を聞いてしまいました・・・。すみません。
”間が飛んでいます”でしかスレ内検索してませんでした。

1046名無しさん:2021/09/30(木) 17:46:25
こんにちは。
スマホビュアデモ(試β5) というとこでスレ見つけ
ましたが、自分で正規表現書けません。
お暇な時にでも教えてやってください。

一覧(1〜13)
https://www.kyodemo.net/sdemo/b/ascii/?k=fakeapp&amp;kt=bk

スレ1
https://www.kyodemo.net/sdemo/r/ascii/1518391672/1-

1047 ◆/vmukiyuzw:2021/10/02(土) 22:49:44
>>1046さん
一から正規表現等書いたのはめっちゃ久しぶり(>>1000のとき以来かな?4年も前か)
なので、勘が鈍りまくってて手こずりました^^;

さて、例によっていくつか留意点があります。

・5ch自身のHTMLを変換した場合に比べ、datの精度はやや低いと思います。
 (不要な情報を取り除き切れていない)
 専ブラで見る分には多分あまり支障はないと思いますが。
 あと、例示いただいたスレでしか確認していないのでそのサイトの他の板等に
 適用できるかはわかりません。

・スレ中に「前スレ」とか「関連スレ」とかで5ch,bbspinkの他のスレへの
 リンクが書き込まれていた場合、そのサイト(スマホピュアデモ)内へのリンクに
 変換されてしまうようです。
 (https://www.kyodemo.net/sdemo/r/ascii/1518391672/1のレス内リンク等)
 これを元のURLに変換するのは困難なので、必要であれば手修正してください。

・色々試してみたのですが、そのサイトからスレの全レスを一度に取得する方法が
 見つかりませんでした。URLの最後に 1- と付けても50レスしか取得できません。
 1-1000とかしてもだめでした。となると、n51- とかして50レスずつ取得して結果を
 エディタで貼り合わせる必要があるかもしれません。

と、また前置きが長くなってしまったので正規表現等は次で。

1048 ◆/vmukiyuzw:2021/10/02(土) 22:53:08
>>1047 続き

コメント:
# スマホビュアデモ(試β5)を変換-20211002

前処理:
# 投稿日とIDが離れているのをつなげる
s`</span><a href=[^>]*?><span class="clid">([^<]*?</span>)` ID:$1`g

アンカー削除:
false

変換結果式:
$2<>$3<>$4<>$5<>

後処理:
s`</?div>``g

正規表現:
m`
<strong>([0-9]+).+? #レス番
<span\ class="clname">(.*?)</span> #名前欄
(?:\[<span\ class="clmail">(.*?)</span>\]\ ?)? #メール欄
<span\ class="cldate">(.*?)</span>.*? #投稿日
<div\ class="clmess"[^>]*?>(.*?)</article> #レス本文
`mikx

10491046:2021/10/03(日) 11:23:42
こんにちは。 ◆/vmukiyuzwさま
いつもいつもありがとうございます。<(_ _)>
(4年前のソイツも自分です。 ^^: )

レスくれてたの気づかず徹夜でキーボードマクロ使える
エディタで切り貼りしてました。(1スレも終わらず)

コレ面倒くさいだろなぁと思いながらもお願いした事も
あって、レスあったの見てウルっときちゃいました。

本当にありがとうございました。<(_ _)>

10501049:2021/10/03(日) 23:53:53
こんにちは。
不具合出ましたので報告いたします。
その12
https://www.kyodemo.net/sdemo/r/ascii/1580015540/n901-

942のワッチョイ(?)辺りでおかしくなり、943,944を巻き込み
1つのレスとなるようです。
htmltodatのレビュー窓では1つになりませんが、スレ番が
太文字に。

1051 ◆/vmukiyuzw:2021/10/04(月) 02:15:24
>>1050さん
とりあえず、ワッチョイのあるレスで不具合が出るのは修正出来たと思います。
ワッチョイの表示が必要なければその行を削除orコメントアウトしても
動くと思います。


コメント:
# スマホビュアデモ(試β5)を変換-20211004

前処理:
# 投稿日とIDが離れているのをつなげる
s`</span><a href=[^>]*?><span class="clid">([^<]*?</span>)` ID:$1`g
# ワッチョイ欄を名前欄とつなげる
s`</span>(\(ワッチョイ[^)]*?\))`$1</span>`g

アンカー削除:
false

変換結果式:
$2<>$3<>$4<>$5<>

後処理:
s`</?div>``g

正規表現:
m`
<strong>([0-9]+).+? #レス番
<span\ class="clname">(.*?)</span>.*? #名前欄
(?:\[<span\ class="clmail">(.*?)</span>\]\ ?)? #メール欄
<span\ class="cldate">(.*?)</span>.*? #投稿日
<div\ class="clmess"[^>]*?>(.*?)</article> #レス本文
`mikx

10521050:2021/10/04(月) 07:48:02
おはようございます。

Doeでもちゃんと表示されました。
いつも助かってます。
正規表現は理解できませんが、リンク表記を
弄れるようになりました。
ありがとうございました。<(_ _)>

10531052:2021/10/04(月) 12:33:22
こんにちは。
その3の535がトリップ?で読めませんでした。
他12スレはdat化できました。
https://www.kyodemo.net/sdemo/r/ascii/1540703439/n501-

時間のある時で構いませんので修正お願いします。

10541053:2021/10/04(月) 15:59:02
正しいかは不明ですが以下のようにしましたら変換はできました。
<span\ class="clname|clcap">(.*?)</span>.*? #名前欄
clcap|lname|clcapを先にするとエラーに。難しい。

1055 ◆/vmukiyuzw:2021/10/04(月) 17:22:50
>>1054さん
それエラーにはならないでしょうが変換結果めちゃくちゃになってません?
|(or表現)で文字列を並べるとき、カッコでくくらないといけません。
かつ、ただのカッコだとキャプチャされちゃう(あとで$1,$2`とかで参照される
対象になってしまう)のでそれを避ける表現が必要です。
とりあえず以下のようにしてください。

<span\ class="(?:clname|clcap)">(.*?)</span>.*? #名前欄

1056 ◆/vmukiyuzw:2021/10/04(月) 20:33:43
あと、この例のようなキャップユーザー?のレスって、dat上でも名前欄にfontタグが
ついていて、専ブラで表示しても色が変わるようになってるんですよね。
一応それに準拠するなら、前処理に以下を追加してください。
(気にならないのであればやらなくてもいいと思います。また、色はそのサイトでの
表示に合わせただけで、元のbbspinkのスレでの色とは違うかもしれません)

# キャップユーザーの名前の色を変える
s`(<span class="clcap">)(.*?)(</span>)`$1<font color=#ff8c00>$2</font>$3`g

1057<font color= ◆yCIuSJMu.o:2021/10/04(月) 21:21:11
◆/vmukiyuzwさん、何度もありがとうございます。
訂正 clcap|lname とclcapを先にするとエラーに。難しい。

>>1054の"clname|clcap"を試した時は535だけ読んで変換させ
ましたのでOKだったみたいです。
実際はclnameをclcapに変更して変換させたものを使いました。

JaneDoe View α ( build date: 1507130036 )ではトリップの
色は緑色から変化せずでしたが、JaneStyleではオレンジに
なりました。
本当に助かりました。ありがとうございました。<(_ _)>

1058名無しさん:2021/10/05(火) 09:14:56
ボード一覧取得URLをhttp://menu.2ch.net/bbsmenu.html
変更してカキコ。

10591057:2021/10/07(木) 16:50:03
こんにちは。お世話になっております。
https://www.kyodemo.net/sdemo/r/ascii/1514602063/n851-
ここの897が変換されません。
スレ番が処理されないようで
<strong><a href="897?na" class="button l-button" rel="nofollow">897</a></strong>:
ガンバッテみたのですがこれで良いでしょうか?
前処理の最初でやってみましたが・・・。

前処理:
#897error
s`<strong><a href="[^>]*?([0-9]+).+?</a>`<strong>$1`g

よろしくお願いします。<(_ _)>

1060 ◆/vmukiyuzw:2021/10/08(金) 00:00:33
>>1059さん
対応としては

> 前処理:
> #897error
> s`<strong><a href="[^>]*?([0-9]+).+?</a>`<strong>$1`g

このやり方で問題ないと思います。


ただ、その897番目のレスには、変換が出来てもレス本文として表示できる要素が
何もないですね。変換元のhtmlソースを見ると

https://www.kyodemo.net/sdemo/a/ascii/1514602063/897.gif

に対する<a href〜 タグはあるのですがそれに対応する本文がないので
専ブラでは何も表示できないと思います。
これはhtmltodatとしてはどう対処すべきか全然わからないです。
(bbspinkでの元のレスがどういうものだったのかわからないしそのサイトで
どういう変換ルールでそういうことになったのかもわからない、調べるには相当
大変そう)
なので、とりあえず上のリンクをdatのスレ本文中に貼るので勘弁してもらえませんか?w
私が見る限り多分大した内容ではないのでこのレスで見てもらうだけでも
いいかもしれませんw

1061名無しさん:2021/10/08(金) 00:52:29
おお、これで良かったのか。
◆/vmukiyuzwさん、お忙しいところ時間割いて
下さりありがとうございます。<(_ _)>

元はその画像のAAみたいです。
https://ikioi5ch.net/cache/view/ascii/1514602063/897
(話の広げようが無い・・・w)
ありがとうございました。

1062 ◆/vmukiyuzw:2021/10/08(金) 03:19:10
んんん?そこのサイト(ikioi5ch.net)だと50レス毎区切って
切り貼りしなくても1000レスいっぺんに読めますね?
www.kyodemo.net から取得するより楽なのでは??と思ったら
ID欄がちゃんと取れてないのか。なんか残念な感じですね。

(まあそれ言ったら現5chのread.cgiも、ID周りの昔から積み重ねた
ごちゃごちゃを整理し切れてなくて投げだしてる感じですけどね。
これはhtmltodatにももちろん影響あるんで一言言わずにはいられないw)

1063名無しさん:2021/10/08(金) 06:48:13
おはようございます。

はい。区切らずいっぺんで読めるのですが
ID消えてたんでkyodemoでお願いしました。
性分ですね。w;

1064名無しさん:2022/04/21(木) 15:17:02
こんにちは。
上記https://ikioi5ch.netのソースを元に自分で書いてみましたがうまくいかず…

<div class="post" id="15" data-date="NG" data-userid="ID:LxZOZESx0" data-id="15">
<div class="meta">
<span class="number">15</span>

<span class="name"><b>以下、名無しにかわりましてVIPがお送りします</b></span>
<span class="date">2005/07/28(木) 12:21:41</span>
<span class="uid">ID:LxZOZESx0</span>

</div>
<div class="message">
<span class="escaped">
とりあえずアンカープリーズ </span>


</div>
</div>

メール欄リンクは全てオフの様でしたので
m#<span\ class="number">([0-9]+).+?<span\ class="name"><b>(.*?)</b></span>.*?<span\ class="date">)(.*?)</span>.*?<span\ class="uid">(.*?)</span>.*?<span\ class="escaped">(.*?)</span>#mik
見よう見まねで書いてみましたがやっぱり動きません。
どこが間違っているのかもわからずじまい…

時間のある時で大丈夫ですので、よかったらご教授願えませんか?
よろしくおねがいします。

1065名無しさん:2022/04/23(土) 23:54:47
>>1064さん
お書きになった正規表現をそのまま試してみると

unmatched close parenthesis

というエラーメッセージが出ます。これは正規表現の文法エラーで
「括弧の対応が正しく取れてないよ」と言われてます。

<span\ class="date">) ←この部分の括弧が余分みたいです。

この括弧を消したところ、一応変換はできましたが、名前欄・メール欄・
投稿日欄とかおかしいです。これは、この正規表現では各欄の位置を
正しく認識できてないという事になります。

htmltodatのreadme.txtには、

$1:レス番号
$2:メール欄
$3:名前・トリップ
$4:投稿日・ID
$5:レス内容

となるように正規表現を設定する、とあります。この$1,$2,…というのは
正規表現中に現れる括弧で囲まれたグループ( ([0-9]+) とか (.*?) とかですね)
に順に番号が振られるものになります。
(この辺はreadmeでは説明不足ですね、申し訳ない。あと、なぜそれに合わせないと
いけないのかは私が勝手に決めた仕様だからとしか言いようがないです。まあ当時の
2chのread.cgiの形式になるべく近づけた形なのですが)

で、お書きになった正規表現をみると

$1:レス番号
$2:名前欄
$3:投稿日
$4:ID
$5:レス内容

となってるのをお分かりいただけるでしょうか。
なので、改善すべき点は2つあって
・メール欄に当たるグループを作る
・投稿日とIDのグループを一つにまとめる
という事になるかと思います。
一つ目は割と簡単で、名前欄よりも前に適当に () を入れればいいです。
(グループは順番さえ合っていれば中身は空でも構わない)
二つ目ですが、この https://ikioi5ch.net のhtmlがちゃんとID欄を拾って
くれていれば他に考えようがあったのですが(前処理または後処理で投稿日欄と
ID欄を強引にくっつける等)、意味のないID欄は無視するのがスッキリしていい
のではないかと思います。

<span\ class="uid">(.*?)</span>.*?

の部分をまるっと削除します。
で、その辺を修正した結果は以下です。

m#<span\ class="number">([0-9]+).+?()<span\ class="name"><b>(.*?)</b></span>.*?<span\ class="date">(.*?)</span>.*?<span\ class="escaped">(.*?)</span>#mik


まだ考慮事項があるのですが長くなってきたので次で。

1066名無しさん:2022/04/24(日) 01:26:32
前レスで書いた正規表現ですが、「うふ〜ん」のレスには対応できてません。
( <span\ class="name"> や <span\ class="date"> などの要素がそもそもないため
マッチしない)、
変換後に変換警告で「レスxxx-xxxの間が飛んでいます」のメッセージが出ると思います。

で考えたのですが、前レスで書いた「グループ化(括弧でくくる)」は後ろに ? をつけて
(xxx)? のようにするとそのグループがあってもなくてもよい(正しい用語では0回または
1回マッチする)ようにできるので、名前にマッチする部分と投稿日にマッチする部分を
グループ化して後ろに ? をつけてみました。
括弧をつけてグループ化すると $1,$2…とカウントされる対象になってしまうのですが
括弧の最初を (?: としておくとカウントされないです。
(カウントとか自分用語使ってますが正式には捕獲とかキャプチャとかいうみたい)

で、その部分含め書き直したのが以下。

m#<span\ class="number">([0-9]+).+?()(?:<span\ class="name"><b>(.*?)</b></span>.*?)?(?:<span\ class="date">(.*?)</span>.*?)?<span\ class="escaped">(.*?)</span>#mik


ついでに拡張表現で書くとこんな感じ

m`
<span\ class="number">([0-9]+).+? #レス番
() #メール欄(ダミー)
(?:<span\ class="name"><b>(.*?)</b></span>.*?)? #名前欄
(?:<span\ class="date">(.*?)</span>.*?)? #投稿日
<span\ class="escaped">(.*?)</span> #レス本文
`mikx


…と書いてきたけど>>1064のレス見るとID取れるスレもあるって事なの?
(前はID取れないから別のサイトって話だったのに)
そういうときは具体的なスレのURL書いて欲しかったな…

1067名無しさん:2022/04/24(日) 13:14:14
>>1065-1066
お忙しい中お返事ありがとうございます!
まさかお返事いただけるとは思ってませんでした!

私が今収集しているログは全てIDまで取っているようです。

参考URL
https://ikioi5ch.net/cache/view/news4vip/1136490878

スレのラストが999になっていたり、途中からアンカーが1つズレたりしているので
「うふ〜ん」「あぼーん」等は無かった事にされ、レス番がその分繰りあげられてる…?
初めからURL出しておくべきでした。
申し訳ないです。

やっと理解できてきました。
()の登場順に変数が($1-$5まで)割り当てられるって意味ですね。

序盤にCSSのガラガラが山ほど出てきてエラーが出ますので

s#<style(.|\s)*?</style>##igk

これを前処理に追加した所無事に変換できました!

IDですが、

<span class="number">186</span>

<span class="name"><b>以下、名無しにかわりましてVIPがお送りします</b></span>
<span class="date">2006/01/06(金) 07:08:07</span>
<span class="uid">ID://9DNy9k0</span>

これを前処理で「</span><span class="uid">」を「 (半角スペース)」に置き換え、
実行しようと今朝から今まで試行錯誤しました。

前処理
s#<style(.|\s)*?</style>##igk
s#</span>(\n|\s)+?<span class="uid"># #igk

結果これでうまくいったのでご報告させて頂きます。(色々間違えてると思うのですが)
本当に助かりました!!ありがとうございました!

1068名無しさん:2022/06/23(木) 16:00:53
いつも使わせていただいております。
vipのスレをhtmltodatで変換すると、5chから取得したdatにある書き込み時間とIDの間のスペースが消えてしまいます。
今は手動でスペースを追加していますが、よろしければご対応して頂ければ幸いです。

1069 ◆/vmukiyuzw:2022/06/24(金) 01:59:40
>>1068さん
まず、うまくいかないスレのURLを書いてほしかったです。
「vipのスレ」と言われても、現役スレをhtmltodatを使う必要は
ないでしょうから何らかの形の過去スレであると思われます。
ならこちらで確認する(スレを探す)のは面倒なのはご理解いただけますでしょうか。
現役スレと過去スレが同じcgiで吐かれてるって保証もないので。

でもとりあえず、ニュー速VIP
https://mi.5ch.net/news4vip/ のことでいいんですよね?)
で、いくつかのスレで
>>1011の正規表現等で試してみましたが、書き込み日時とIDの間のスペースが
消える事象はこちらでは確認できませんでした。

1070名無しさん:2022/06/24(金) 13:20:23
>>1069
お返事ありがとうございます!
おっしゃる通りmi鯖の過去スレです。言葉が足らず申し訳ございませんでした。
試して頂きありがとうございます。
事象は確認出来なかったとのことで、私の使ってる変換オプションを>>1011の正規表現等と照らし合わせてみた所、
「透明あぼーんを補う」にチェックが入っておらず、チェックを入れた所、スペースが消える事象は解消されました。

お手数おかけして申し訳ございませんでした。ありがとうございました!

1071名無しさん:2022/09/13(火) 22:47:05
URLコピペしてスレ取得しようとしたら
Socket Error # 10054
Connection reset by peer.
なるエラーが出て取得失敗するようになりました
ネットブラウザからhtmlファイルとして保存はできるので
ローカルに落としたそれをhtmltodatに食わせて凌いでるけど面倒くさいです

これってソフトの設定方でどうにかなるものでしょうか

1072名無しさん:2022/09/13(火) 23:57:49
>>1071さん
こういうお問い合わせには、該当のURLを書いていただかないと
こちらで調べようがないと何度も書いてるのですが、このスレも
いつの間にか20年にもわたりますし1000レスを大幅に超えてますし
仕方ないですかね…

個人的経験でしかないですが
> Socket Error # 10054
> Connection reset by peer.
こういうエラーはたいてい相手サーバーが死んでる時ですかね。
もしくはプロキシ経由で接続しててそのプロキシ死んでるとか。
ローカルプロキシを使う設定にしておきながらローカルプロキシを
起動し忘れてる、なんてのは私はしょっちゅうやります。

1073 ◆/vmukiyuzw:2022/09/14(水) 01:29:16
あれ?トリップ外れちゃったけど>>1072は私です

10741071:2022/09/14(水) 06:53:06
>>1072
質問内容の不備大変失礼しました
また、今に至るも迅速なサポート続けておられることに感謝と敬意を表します

先質問の件ですが、5ちゃんねるの様々な板で試してみたところスレ中に記述してある過去ログのURL全てで同じエラーが返ってくる状態だったので例示に及ばずと勝手に判断してしまいました
代表として一番不便を被ってる市況2のものを抜粋・提示します

https://hayabusa9.5ch.net/test/read.cgi/livemarket2/1663088406/1
より
https://hayabusa9.5ch.net/test/read.cgi/livemarket2/1663077424/

proxyは利用しておらず、ネットはワイモバイルのポケットwifiを使用しています
ネットブラウザ(firefox)ではアクセスできることとの整合性が取れないので質問差し上げた次第です

何かお気づきになりましたらサジェッション頂けるとありがたいです
dat化できない類の問題ではないので本質問は埒外とのことでしたら了解致します

1075名無しさん:2022/09/14(水) 10:11:51
ファイアーウォールでブロックされてるとか?

1076 ◆/vmukiyuzw:2022/09/14(水) 21:38:00
>>1074さん
>>1071のレス内容を見るに、今までその環境で使えていたが
急にエラーが出るようになったということでしょうか?
貴方が自分の環境を変えたのでなければ、やはりサーバー側の
問題である可能性が高いと思うのですが、もしそうであれば
もう解消してませんか?今でもエラー出ますか?

> ワイモバイルのポケットwifi
つい最近、小規模だけどソフトバンク回線の通信障害があったと
耳にしました。たまたまそのタイミングであった可能性は
あるかもしれません。それがこのエラーにつながるのかどうかは
わからないですが。

10771071:2022/09/15(木) 18:47:01
>>1076
ご返信ありがとうございます。先ほど試してみたところ何の問題もなくスレ取得できました。自環境に変更は行っておりません。
症状発生して即1071投稿したわけではなく数日様子見してからの投稿だったのですが、類似の質問・経験談が上がってこない所を見るとレアなケースのようで。

以後トラブル発生の際はもう少し様子見期間を延ばすことを心がけます。
なんともバツの悪い話で申し訳ございませんでした。

1078 ◆/vmukiyuzw:2022/10/20(木) 07:51:34
唐突ですが
「5ch過去ログ倉庫を見やすくするためスレッドキーをタイムスタンプに変えて表示」
てスクリプトを作りました。
http://mukiyu.g.ribbon.to/ の 5chKakologSouko てやつです。

経緯ですが、以前>>1035-1037みたいなやり取りがあって、その中で
>>1036さんに過去ログを探す便利なサイトをご紹介頂き、時々
使っていました。ただ、最近そのサイトはあまりうまく動いてない
みたいです。(過去ログを取りこぼしてることが多い)

で、自分が提案した過去ログ倉庫ですが、確かに見づらく、
>>1037でブックマークレットを書いてみたのですがこの用途には
使い勝手がよくないと思ったので、Chrome等のアドイン
Tampermonkey のスクリプトに書き直してみました。
こういう過去ログの探し方をする方がどれだけいるかわかりませんが
そういう方には役に立つかもしれません。

1079 ◆/vmukiyuzw:2022/10/21(金) 06:50:43
>>1078
で公開したスクリプトですが少し修正しました。

「5ch過去ログ倉庫を見やすくするためスレッドキーをタイムスタンプに変えて表示」
と説明してましたが、スレッドキー(unix timeの9-10桁の数字)も
タイムスタンプちゃうん?という気がして(タイムスタンプの定義は何?て話にも
なりそうで面倒なので)、
「5ch過去ログ倉庫を見やすくするためスレッドキーを年月日時分秒表記に変えて表示」
と、説明を変更することにしました。

スクリプトの処理内容は変更はないのでバージョンは変えてません。
スクリプト内のコメントは変更してます。

1080名無しさん:2023/06/14(水) 05:08:00
失礼します
5chの仕様が変更されたようなので正規表現をお願いできないでしょうか?
それとhttp://mukiyu.g.ribbon.to/が利用不能になっております

1081名無しさん:2023/06/14(水) 20:53:29
ブラウザでスレを表示して右上の設定ボタンから「クラシック」をクリックすると
read.cgiの後ろに「c」ディレクトリが付いてるURLに飛ぶので、このURLにアクセスするようにすれば見れそうですね。

C#版のhtmltodatByFiddler v3.04ベースですが、
OnBeforeRequest.cs.txt

oSession.url = v.g(1) + "/test/read.cgi/" + v.g(2) + "/" + v.g(3) + "/";
の行を
oSession.url = v.g(1) + "/test/read.cgi/c/" + v.g(2) + "/" + v.g(3) + "/";
って感じで「c」ディレクトリを追加してあげれば見れるようになりました。

1082 ◆/vmukiyuzw:2023/06/14(水) 22:38:15
>>1080さん

>>1011を元に修正しました。


コメント:
# 5chのread.cgi 08系からの出力を変換-2023/06/14
# 5chのcgi仕様変更(08.0d)に対応

URLの変換:
# htmltodat 0.11.10以降を使っていればこれはなくてもよい
s#https?://(.+?)/test/read\.cgi/(.+?)/(\d+)/?.*#http://$1/test/read.cgi/$2/$3/#

前処理:
# メール欄にURLが貼られた時のとりあえず対応
s#(<a href="mailto:)([^<>]*?)(?:<a href[^>]*?>)?([^<]*?)(?:</a>)?([^>]*?)(">)#$1$2$3$4$5#ig
# ガラガラ削除
s#^(.|\n)*?<div id="thread"##igk

アンカー削除:
false

透明あぼーんを補う:
true

後処理:
# BE周りの処置
s#</span><span class="be .*?><a href=".*?//be\.(?:[25]ch\.net|bbspink\.com)/user/(\d+).*?>\?(.*?)</a># BE:$1-$2#ig
# アンカータグ削除(レスアンカーに対するタグは削除しない)
s#<a(?: class="image")? href="http.*?>(.*?)</a>#$1#igk
# お絵かき機能等のimgタグを除去
s#<img src=".*?(//.*?)">#sssp:$1#igk
# IDの前に付くようになった不要なタグを除去
s#</span><span class="uid"># #igk
# 07.2.1で追加された不要な要素を除去
s#<><span class="AA">(.*?)</span><>#<>$1<>#igk
s#(target="_blank").*?>#$1>#igk

正規表現:
m`
(?# レス番号)<span\ class="postid">([0-9]+)</span>
(?# 名前)<span\ class="postusername"><b>
(?# メール欄)(?:<a\ href="mailto:(.*?)">)?(.*?)(?:</a>)?</b></span>
(?# 投稿日・ID)</summary><span\ class="date">(.*?)</span>
(?# レス内容)</details><section\ class="post-content">(.*?)</section>
`mix

1083 ◆/vmukiyuzw:2023/06/14(水) 23:20:50
自分が何をやっていたのか思い出すのに苦労しましたw

> >>1011を元に修正しました。

て言っても5年も前ですもんねw

> それとhttp://mukiyu.g.ribbon.to/が利用不能になっております

ribbonネットワーク(ribbon.to)自体つながりません;;
会社自体亡くなってしまったのかも…
この際なのでGitHubあたりへの移動を検討していたのですが
別件で忙しくなってしまい頓挫中です。

あと、書かないといけないを思っていたのですが、
昨年使っていたPCが故障してしまい使えなくなりました。
htmltodatのソースコードはバックアップしていたのですが
開発環境を復旧することができず、今後もうメンテナンスをする
ことはできません。
今更別環境で書き直すようなものでもないし、今後何かの事情で
使えなくなるような状況になっても多分対応できないと思います。
ご了承ください。

1084 ◆/vmukiyuzw:2023/06/14(水) 23:33:17
>>1081さん
情報ありがとうございます。
当面その方法でしのげそうですね。
htmltodatByFiddlerのスクリプトは手元では修正して動くようになったのですが
どうお知らせするかと考えてるところです。

1085 ◆/vmukiyuzw:2023/06/14(水) 23:42:43
プログラミングわかる人向けですが
read.cgi 何々用と並んでる最後 のelse の前に


}else if (oBody.ismatch(@"<div id=""thread""")){ //read.cgi 08用
// htmltodat変換メイン
oBody = oBody.htmltodat(@"<span class=""postid"">(\d+)</span><span class=""postusername""><b>(?:<a href=""mailto:(.*?)"">)?(.*?)(?:</a>)?</b></span></summary><span class=""date"">(.*?)</span></details><section class=""post-content"">(.*?)</section>");
// BE周りの処理
//be.bbspink.comが追加されていたので対応 v3.0
oBody = oBody.replace(@"</span><span class=""be .*?><a href="".*?//be\.(?:[25]ch\.net|bbspink\.com)/user/(\d+).*?>\?(.*?)</a>"," BE:$1-$2");
oBody = oBody.replace(@"<img src="".*?//(img\.[25]ch\.net/.+?)"">","sssp://$1");
//read.cgi 07.0.1 からIDの前に付くようになったタグを除去
oBody = oBody.replace(@"</span><span class=""uid"">"," ");

1086 ◆/vmukiyuzw:2023/06/15(木) 01:57:51
おっと、そのちょっと前に

//datが存在しないなどまっとうなレスポンスでない場合404を返して抜ける(ここはまだ要検討)
if (oBody.ismatch(@"<dl ")||oBody.ismatch(@"(<div|span) class=""number"">")){
}else{
oSession.responseCode = 404;
return;
}

てif文があるんですが、新しいread.cgiではこの条件を通らないので

if (oBody.ismatch(@"<dl ")||oBody.ismatch(@"(<div|span) class=""number"">")||oBody.ismatch(@"<div id=""thread""")){

にする必要があります。

1087名無しさん:2023/06/22(木) 22:22:44
>>1084
お世話になっております。
>>1081の方法だと、5chは見れるようになるのですが、
bbspinkのほうはまだ旧仕様なので、見れなくなってしまいます。。。

1088 ◆/vmukiyuzw:2023/06/23(金) 22:09:01
>>1087さん

htmltodaByFiddler をバージョンアップしました(Ver 3.05)

3.05(2023/06/23)
 ・5chの read.cgi の変更に対応

https://github.com/mikiyu71/htmltodat

今後のリリースはここ(GitHub)で行います。

変更内容は>>1085-1086で書いた内容を反映させたものです。
5chの read.cgi が ver 08 に上がってそれに合わせて枝分かれが
増えた形です。
修正したのは OnBeforeResponse.cs.txt のみです。
この変更を適用するなら、>>1081さんの変更は不要になります。

1089 ◆/vmukiyuzw:2023/06/23(金) 22:55:28
>>1088
ディレクトリ名 はhtmltodat としていますが、見てもらえれば分かりますが
中身は htmltodatByFiddler です。
せっかく GitHub にしたんだから過去の履歴も追えるようにすべきだった
かもしれませんが、面倒すぎるんでアップしたのは最新版のみです。
今後修正が必要になった場合は GitHub 上での履歴としていけると思います。

あと、htmltodat.exe に関しては、>>1083で書いた通り今後アップデートできる
見込みはないので、GitHub にはアップしません。新しくユーザーが増えることも
なさそうですし。
ただ、「ここの正規表現どうしたらいい?」みたいなお問い合わせは今後も
受け付けますのでよろしくお願いします。

1090 ◆/vmukiyuzw:2023/06/24(土) 03:14:03
というか、http://mukiyu.g.ribbon.to/ にアクセスできるようになってるみたい…
(ribbon.to 自体には自分とこからでは相変わらず繋がりませんが)

ここ数日 GitHub へ移すためにやった苦労は何だったんだ…
(いや勉強になったし今後も役立ちますが)

どうしますかね。http://mukiyu.g.ribbon.to/ から GutHub に飛ぶような
リンクを貼るようにするのがいいのかな。

1091名無しさん:2023/06/25(日) 12:05:16
>>1088
1087です。
Ver. 3.05に変更したところ、問題なく見れるようになりました。
ありがとうございます。

1092 ◆/vmukiyuzw:2023/10/11(水) 04:06:42
昨日ちょっと専ブラから5chにつながらないときがあって
chromeから見てたのですが、read.cgiのバージョン表記が

read.cgi ver 07.4.4 2023/10/10

となっていて、なんかバージョン番号が先祖返りした感じですね。
しばらくなくなってたエッチな広告もなんか復活してますし…
とはいえ、htmlの形式自体は >>1082 以降で対応してきた08系と
特に変わりはないようなので問題はなさそうですが。

1093 ◆/vmukiyuzw:2023/12/21(木) 05:43:46
>>1078
のスクリプトなのですが、最近5chの過去ログ倉庫が文字化けだらけで使い物にならん…

と思ってたら運用情報板に「過去ログ見たいならscを使え」みたいなスレが立ってて、
なるほどそういう手もあるかと思いスクリプトを改修してました。
でも 5ch.net と 2ch.sc では同じ板でもサーバ名が違う…
これはスクリプトレベルではどうしようもないので、運用上で回避することを
考えていました。

でも、ここ数日で文字化けは(全板かどうかわかりませんが)改善されたようなので
スクリプト改修の公開は保留にします。

1094名無しさん:2024/02/25(日) 12:58:16
htmltodatでしたらばの過去ログで2012年〜2013年は正規表現の項の「DAT2HTML0.26」で読み込めますが
2013後半〜以降の過去ログ・現行ログを取得する方法はありますか?

例としてここのURLで試しましたが正規表現が正しくないと表示されました
https://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/

>>864氏のprmを試した見ましたがうまくいきませんでした

1095 ◆/vmukiyuzw:2024/02/28(水) 00:41:50
>>1094さん
したらば過去ログの話題は久々ですね、それこそ>>864さんの話題以来かな。
まず、したらばは過去ログと現行ログを分けて考えるする必要があると思います。

過去ログについては昔も今も正規表現「jbbs過去ログ」が使えると思います。例として
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1024130759/
>>864さんもテストに使われたこの板の過去ログ。2002年のもの)
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/
(したらばトップから適当に探した過去ログ。2023年のもの。ただしレス番飛びが
あるようで警告は出る)
20年を隔てても使えるようですw

現行ログについては以前>>622で考えたことがあるのですが、そのときとは
read.cgiが吐くhtmlの形式がかなり変わっており同じ手は使えないようです。
したらばにはrawmode.cgiという5chのdatと近い形式のデータを返す機能が
あるので、これを使う方向で考えてみました。。
(以前、https://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/124
で考えたことがあるのですが、レス番飛びを検出できないのであまりよい方法ではない)
いざやってみると思ったより面倒でしたが…^^;


コメント:
したらばの現行ログをrawmode.cgi経由で変換する

URLの変換:
s`read\.cgi`rawmode\.cgi`

前処理:
s`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)\\?\n`$1<>$2<>$3<>$4 ID:$7<>$5<>$6<>\n`img

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>$6<>

正規表現:
m`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)`ig

1096 ◆/vmukiyuzw:2024/02/28(水) 00:49:00
>>1095
と長々と書いときながらなんですが、正直言うと
したらばに対応してる専ブラ使う方が絶対楽だと思いますよ。
Xenoとかおすすめです。
上で書いたような、過去ログと現行ログの違いもユーザーが
意識せずとも勝手にやってくれますし。

「いやいや使い慣れたブラウザで見たいんじゃー」
てことかもしれませんが、それならしたらば対応専ブラから
dat持っていけばいいんじゃない?と思います。
ここで質問されてる以上、htmltodatで作ったdatを持って
いくのでしょうから、それを対応専ブラにやらせると考えれば
手間はそれほど変わらないのでは。

10971094:2024/02/28(水) 17:42:11
返信ありがとうございます
作成して頂いたprmでタイトルを取得できなかったものの現行ログのdat化が出来ましたありがとうございます

提示して頂いた過去ログでは「jbbs過去ログ」を試したところ
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/
ですが私の環境では正規表現が正しくないと表示され返還できませんでした
同様に以下でも試しましたが同じです。おま感でしょうか
https://jbbs.shitaraba.net/bbs/read_archive.cgi/internet/14562/1533538138/

Xenoでしたらばが読み込めるのは盲点でした要は使い分けですね

htmltodatは現状2ch時代の過去ログが閲覧できない状態でも
み○ずんやビュアデモといった所からdat化出来る為大変重宝しております

1098 ◆/vmukiyuzw:2024/02/29(木) 01:35:49
>>1097さん
> 作成して頂いたprmでタイトルを取得できなかったものの

すみません、タイトルを取得できないのは私のミスです。
prmファイル中の

変換結果式:
$2<>$3<>$4<>$5<>$6<>

これを

変換結果式:
$2<>$3<>$4<>$5<>$6

にしてください(最後の<>が余分だった)。


> 私の環境では正規表現が正しくないと表示され

これはわからないですね。
> 同様に以下でも試しましたが同じです。
とあげていただいたスレもこちらでは変換できましたし。
書かれてないですがこの板(私が例示した一つ目)は変換
できたのでしょうか?
「jbbs過去ログ」の正規表現の内容が違っているのかな?
「jbbs過去ログ」の正規表現は

m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

なのですが、これを直接htmltodatの正規表現欄にコピペして
やってみてもダメですかね?
(これは>>864で書かれた正規表現と同じものなのですが
>>864さんはこれでうまくいったようです)

10991094:2024/02/29(木) 18:36:41
ありがとうございます
何度も御対応して頂き本当に申し訳ない

画像を含めて結果だけ報告します
前提としてソフトは再起動後の状態からそれぞれ試しています

テストその1
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1024130759/
【画像】https://i.imgur.com/Hc9EgZl.jpeg
上記スレでは正規表現一覧内の[jbbs過去ログ]で問題無くdat化する事が出来ました


ノルマンディーOC 【99】
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/

上記スレでは[jbbs過去ログ]及び[jbbs過去ログ改]と

【m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik】
を直接入力及び>864氏のprmも試した所をした所dat化は無理でした
htmlもそのまま出力されてしまっている様です
【画像】https://i.imgur.com/KQwdUVU.jpeg



現行ログの件ですが
【画像】https://i.imgur.com/Ep94tap.jpeg
「$2<>$3<>$4<>$5<>$6」にしてもスレタイを取得できなかった為

やはり私の環境に何かファイルの欠落があるのかもしれません

返信頂きありがとうございました

以下はテスト環境です
htmltodat Ver 0.11.12

エディション Windows 10 Home
バージョン 22H2
インストール日 ‎2021/‎05/‎17
OS ビルド 19045.3930
エクスペリエンス Windows Feature Experience Pack 1000.19053.1000.0

1100 ◆/vmukiyuzw:2024/03/01(金) 01:02:09
>>1099さん
なんとかわかった気がします。

まず過去ログに関してですが、
受信オプション - HTTPヘッダの追加 で

User-Agent: Monazilla/1.00

を指定してみてください。正規表現は「jbbs過去ログ」でいいです。
これで、お試しくださった「テストその1」も
「ノルマンディーOC 【99】」も変換できると思います。
私の環境でうまくいっていたのは、一旦このUAの指定をした後、リセット
しないままテストしていたためと思われます^^;

なぜそういうことになるのかはしたらば側の事情になるので推測に
過ぎないですが、
・(最初のご質問>>1094にあった)多分2013年頃に過去ログhtmlの形式が変更された
・が、User-AgentでMonazillaを名乗るもの
(したらば過去ログに対応していたと思われる専ブラ)
 からのリクエストには影響が出ないよう、元の形式のhtmlを返すようにされた
ということではないかと思います。


あと現行ログについてですが、htmltodatのプレビュー欄には
<タイトル無し>と出てしまうのですが、実際にはdat上には
スレタイはちゃんと出力されてるので、お使いの専ブラ
(何をお使いなのか参考に教えていただけるとありがたいです)
に持っていけばスレタイは認識してくれると思いますよ。
<タイトル無し>と出てしまうのは、通常のhtmltodat変換とちょっと違う
イレギュラーな手法を使ってるせいで、プレビュー欄のタイトルをうまく
取得できていないだけです。
「それ不具合ちゃうん?」と言われるかもしれないですがご容赦ください^^;

11011094:2024/03/01(金) 18:28:19
度々の対応ありがとうございます

助言通りに「User-Agent: Monazilla/1.00」を設定した所
無事にしたらばの過去ログのdat化に成功しました
https://i.imgur.com/yiK9My1.jpeg

本当にありがとうございます!

現行ログのタイトルもしっかり出力されていました
(dat化した後読み込んでちゃんと確認しておくべきでした申し訳ない)


使用していたのは「jane style」でした(dat出力機能が標準で付いていた為)
現在は「Xeno」を使おうと思って色々設定を弄ってる所です

本当にありがとうございました

私事ですが
現状5ch(2ch)界隈でゴタゴタしてて過去ログも見れない状態が続いてるので
この手の知識が無いなりにスレのdat化やサルベージを何とか進めている最中です

現在はonen2chのdat化を試みています
openは対応しているブラウザが多いので読み込めたりしますが
datが消滅しているスレ
https://wktk.open2ch.net/test/read.cgi/aimasu/1477275318/
https://wktk.open2ch.net/aimasu/dat/1477275318.dat
等は専ブラでは読み込めない為色々試している最中です

では長々と失礼いたしました

1102 ◆/vmukiyuzw:2024/03/05(火) 23:43:26
>>1094さんの丁寧なご報告のおかげ🙂でひと段落付いたようなので
現状を一旦prmの形にまとめておきます。これに対するレスは不要です。
まずしたらば過去ログ。


コメント:
したらばの過去ログを変換する
以前は正規表現=jbbs過去ログだけで行けたが
いつからかhtmlの形式が変わり、旧形式のhtmlを得るには
UAを指定する必要が出てきたようだ

HTTPヘッダの追加:
User-Agent: Monazilla/1.00

正規表現=jbbs過去ログ

1103 ◆/vmukiyuzw:2024/03/05(火) 23:46:54
次にしたらば現行ログ。
前に書いたものに若干のバグがあり少し修正してます。
まあ実験的なものであまり使われることはなさそうですが。


コメント:
したらばの現行ログをrawmode.cgi経由で変換する
・前処理
したらばのrawmode.cgiの出力は
レス番<>名前<>メール欄<>投稿日時(ID含まない)<>レス内容<>スレッドタイトル<>ID
なのでID($7)を投稿日時($4)の後ろに移す
・正規表現
各欄にそのまま当てているだけだが処理中に$1でレス番飛びのチェックをしているので必要

URLの変換:
s`read\.cgi`rawmode\.cgi`

前処理:
s`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)\\?\n`$1<>$2<>$3<>$4 ID:$7<>$5<>$6 <>\n`img
# IDがない板の場合削除
s` ID:<>`<>`img

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>$6

正規表現:
m`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)`ig


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板