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

htmltodatサポートスレッド

1</b><font color=#FF0000>(L44UP/ps)</font><b>:2002/11/30(土) 01:48
QA・要望等受け付けるかもしれない(?)スレッドです。
作者にスキルがないのでできないことが多いかとは思います。

130名無しさん:2004/11/21(日) 00:25
http://aw0015.hp.infoseek.co.jp/2ch/gx-19.html
これがどうやっても正しく変換できません。その他となんだっけ・・・なら
変換は出来るのですが、番号が飛び飛びになってしまいます。

131名無しさん:2004/11/21(日) 00:29
すみません。バージョンアップしたらできるようになりました。
半年前のやつだったので、古かったようです。
スレ汚し申し訳ございませんでした。

132名無しさん:2004/12/04(土) 17:48
始めまして。
htmltodatを使わせて頂いております。
さて、下記のURLの変換がどうしてもうまく出来ません。
http://f33.aaa.livedoor.jp/~kagura/kako/1060675865.html

正規表現は、どのようにすれば宜しいのでしょうか。
お分かりの方居りましたら、ご教授下さいますようお願い致します。

133週刊少年マンガ板住人:2004/12/15(水) 17:42
2ちゃんねるミラー化計画からログを引っ張ってこれるように
UFT-8のデコードにも対応してもらいたいです。

>>132
m#<dt>.+</a>(\d+) 名前:.+<a href="mailto:(.*)"><b>(.*) ?</b>.+:(.+)<br><dd>(.*)<br><br>#mki

こんな感じ?名前欄のスペース有り無しでハマった…

134週刊少年マンガ板住人:2004/12/16(木) 16:16
誤字った…改めて

>>作者様へご要望です
2ちゃんねるミラー計画からログを引っ張ってこれるように
UFT-8のデコードにも対応してもらいたいです。
対応ご検討いただけると嬉しいです。

135 週刊少年マンガ板住人:2004/12/16(木) 16:24
うわぁ直ってない。
×UFT-8
○UTF-8
です。

136週刊少年マンガ板住人:2004/12/16(木) 17:11
この際なんで要望その2!

自分はperlしか知らないんですが、()の対応がうまく取れず拾いたいレコードを
取りこぼしてしまい、(多くはメール欄の有無で処理が大きく分ける必要のあるhtml)
結局前処理が必要になることがあるので、

・マッチング用の正規表現スペースを2つか3つにして or で拾い
・2つ目以降のスペースはそれぞれ空の時マッチング動作に加わらずスキップ
としていただけるとなお嬉しい…

この仕様だと旧パターンの互換性は一つ目の正規表現スペースだけを使う事で保証されます。

137</b><font color=#FF0000>(L44UP/ps)</font><b>:2004/12/18(土) 01:04
>>134-136さん
UTF-8対応は割と簡単そうなので気が向いたらそのうちやりたいと思います。
2ちゃんねるミラー計画とやらのURLを教えてください。
2つめのご要望はかなりの改造になってしまうのでちょっと難しいと思います。

138週刊少年マンガ板住人:2004/12/18(土) 03:57
対応、どうもありがとうございます。
うーん、フラグ持たせて評価関数ループ…じゃ難しいのかな。

2ちゃんねるミラー計画@fun.kz
http://fun.kz/

サイトはこちらです。

139132:2004/12/18(土) 11:11
>>133
どうも、ありがとうございました。
無事、変換することが出来ました。

140名無しさん:2004/12/19(日) 07:16
>週刊少年マンガ板住人
>>127

141週刊少年漫画板住人:2004/12/19(日) 13:00
>>140
あああああぁぁぁぁながあったらはいりたい。
申し訳ないっす。

142名無しさん:2004/12/28(火) 06:22
( )内で処理をすると
その部分が問答無用で5つのデータとして割り当てられていっちゃうのかと思ったら
(?: )って書くと回避できるんですね。
それに気付くまで数時間ぐらいずっといじってた・・・

143名無しさん:2005/01/24(月) 14:24
http://jbbs.livedoor.jp/movie/3205/storage/1089709230.html

livedoorしたらばのログなのですが、>>133の正規表現を用いても変換不可でした。
出来ましたら御対応して頂きたいのですが…

144</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/01/24(月) 18:03
>>143さん
正規表現は>>63のでほぼいけると思うのですが
(以前と多少形式が変わったみたいで名前欄が若干変ですが)、
それ以前にこのhtmlはソースを全部表示できないですね。
(レス番109までしか表示できない)

htmlソースを直接取得して調べてみるとレス番110の途中に大量の
NULL文字(0x00)が混入・・・噂のjbbsのバグかな?
とりあえずGET直後にNULL文字を除去するよう改造してみたところ
全部表示できるようになりました。
今日か明日中にUPできると思います。

145</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/01/24(月) 20:37
久しぶりにバージョンアップしました。(0.1.6)
・html中にNULL文字(0x00)が含まれるとそれ以降のhtmlが表示できなくなる
 不具合の対処として、GET直後にNULL文字を全て除去するよう修正。

お試しください。>>143さん
正規表現は>>63のよりも、サンプルで添付しているregexps.txtにある
「jbbs過去ログ」のほうが多少まともに変換できるようです。

146名無しさん:2005/01/25(火) 16:42
>>145
試してみた所、見事変換に成功しました。
作者様誠に有難う御座います

147<削除>:<削除>
<削除>

148名無しさん:2005/04/03(日) 14:38:32
てすと

149名無しさん:2005/04/05(火) 08:18:02
dat2htmlがバージョンアップしましたが、そのファイルは
どの正規表現を使ってもうまくdatに戻せませんでした。
正規表現はどのようにしたら良いでしょうか

150名無しさん:2005/04/05(火) 10:47:58
>>149
そういう時にはdat2htmlのバージョンと、
スレのURLを書いてもらえるとありがたいです。

今のままではアドバイスのしようがありません。

151名無しさん:2005/04/13(水) 15:47:34
>149に便乗して質問させていただきます。
今まで手持ちのログを試した経験では、dat2htmlがv0.3以上の場合
「一行が長すぎるか…」で変換に失敗するようになりました。

ちょうど今も、下記のログを変換しようとしていたところなのですが…
 http://2ch.pop.tc/log/05/04/10/1344/1112979897.html

使用されているdat2htmlのバージョンは0.32fpとのこと。
申し訳ありませんが、正しい正規表現をご教授していただけたら幸いです。
宜しくお願い致します…

152</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/04/16(土) 03:26:59
DAT2HTMLのどのバージョンからかまではちゃんと調べてませんが、
確かに現時点の最新版Ver.0.32gでは出力されるHTMLの形式が微妙に
変化してますね。
具体的には、各レスの先頭が
・0.29の場合 :<dt><a name="R1">1</a> の形式
・0.32gの場合:<a name="R1"></a><dt>1 の形式
というように、タグの位置が入れ替わっています。

で、正規表現としては、「DAT2HTML0.26」の
m#<DT><A.*?>([0-9]+)〜 の <A.*?> の部分が不要になることに
なるので、これを削ればマッチするようになると思います。

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

あと細かいところですが、>>151のHTMLでは各レスの<dd>タグの後、
レス本文の前後に、半角スペースが1個ずつ付加されています。
この半角スペースはDAT2HTMLのバージョンによって、あったりなかったり
オプションで有無を指定できたりもするみたいです。
上記正規表現で変換したdatにも半角スペースの有無はそのまま反映されます。
2ch用ブラウザでの見た目は多分変わらないはずなので気にしなくても
いいかもしれませんが、気になるようであれば正規表現の <DD> の後に
半角スペースを適宜足すなりしてみてください。

153151:2005/04/16(土) 07:57:38
>>152 作者様、早速のお答えどうもありがとうございます。
一応自分でも無い知恵を絞っていろいろ弄っていたのですが、とても対応できなかったので
早速>>152を試してみた所…

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

では
>1 名前:名無しさん[] 投稿日:2005/04/09(土) 02:04:57 ID:Eg5j8Arg
                                   ~~~
のように、秒数とIDの間に半角スペース2つ分空白が空きましたが、レス後半で答えられていた通り

>m#<DT>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>) :(.*?)<DD >(.*)<BR><BR>#mi
と、半角スペース一つ入れる事で正常に変換できました。

DAT2HTML側のオプションで変化するとの事なので、両方とも登録する事にします。
自分一人なら早々に挫折するところでしたが、ご教授本当に有難うございました。
それでは…

154151:2005/04/16(土) 08:03:58
度々すみません。
↑の「秒数とID云々」の所ですが、IE上では2つ以上の半角スペースは無視されるんでしたね。

>1 名前:名無しさん[] 投稿日:2005/04/09(土) 02:04:57  ID:Eg5j8Arg

元の投稿では↑こんな感じになっていました。

155名無しさん:2005/04/17(日) 02:10:33
http://makimo.to/2ch/salami_hrhm/991/991002509.html

このスレをhtmltodatを使って2ch標準形式のdatに変換しようとしてるのですが、
まったく出来ませんでした。

最初からhtmltodatに入ってた正規表現は全部試してみたんですが、
ほとんどの正規表現で、「1行が長すぎます」と出てDatに変換できません。

これをDatに変換するには、どういう正規表現を追加すればいいんでしょうか?
よろしくお願いします。

156名無しさん:2005/04/17(日) 17:39:15
>>155
>>83を参照。

157155:2005/04/17(日) 22:39:16
>>156
出来ました。
ありがとうございました。

158名無しさん:2005/04/18(月) 01:22:44
makimo.to(にくちゃんねる)の過去ログだったら、IEで表示して
マウスポインタを画面右上に持っていくだけで「DAT」っていうのが
出てきますよ。(要JavaScript ON)
まあやってることは>>83と同じですがちょっとだけ楽ってことで。

159155:2005/04/18(月) 21:12:18
>>158
そうだったのか・・・
JavaScript切ってるので気づきませんでした。
ありがとうございました。

160名無しさん:2005/04/19(火) 20:37:26
2ちゃんねる検索(公式)でhtmlを取得したのですが
どの正規表現を使ってもうまくdatに戻せませんでした。
正規表現はどのようにしたら良いでしょうか
バージョンは0.1.6を使用しております。

サンプル用のhtmlはこちらです。
http://wiki.fdiary.net/2chZelda/?c=plugin;plugin=attach_download;p=sample;file_name=findhtml.zip

161</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/04/20(水) 20:13:05
>>160さん
cssが同封されていたり、HTML中に
<META content="MSHTML 6.00.2900.2627" name=GENERATOR>
というのが入っているのを見ると、IEで表示したスレをメニューから
「名前をつけて保存」で保存したもののようですね。
この方法で保存した場合、IEが適当にHTMLを整形・加工してしまうので、
正規表現にヒットしにくくなってしまう場合があります。
なので、htmltodatとしては
・スレのURLを直打ちで取得
・スレへのリンクを右クリック→「対象をファイルに保存」で保存
・適当なダウンロードツール(iria,irvine等)を使う
のいずれかをお勧めします。

とりあえず以下のようなのを書いてみました。

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

一応サンプルの3つのHTMLにはマッチしましたが、上に書いた整形・加工の
影響でdat中に無駄な半角スペースがいくらか入ってしまいます。
(2ch用ブラウザでの見た目上は影響ないはずですが)

あと、これらのHTMLは、タイトルがスレタイではなく
「2ch検索: [dat:http://qb5.2ch.net/test/read.cgi/operate/1112336659/]」
のようになっているので、dat変換後に正しいスレタイに変更してください。
(datの1行目の一番最後をテキストエディタで書き換える)
それから、ghard板のHTMLだけなぜかcharsetがEUCですね。

162</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/04/20(水) 20:42:48
>>161の正規表現をそのままコピペすると<DD>と<DT>の前の半角スペースが
それぞれ1個だけになっちゃいますが、実際には2個です。
(ブラウザが2個以上の半角スペースは省略してしまうため)

163160:2005/04/20(水) 22:59:55
(L44UP/ps)さん、
迅速な対応をして頂き本当にありがとうございます

最初は、自分の力で正規表現を書こうとしていたのですが
DATについての知識もない状態ではどこから手をつけていいか
わからず、恥ずかしながら相談しました。

早速、>>161をの正規表現の式を>>162に書いてある修正を加え
HTMLのファイル名を短くして、同名のフォルダとの関連づけを絶ったうえで
変換してみたところ、無事dat化することができました。

>それから、ghard板のHTMLだけなぜかcharsetがEUCですね。
1つだけEUCになっているのはこれを初めに保存したからです。
ソースを見て文字化けしているのが気になったので
後の2つはシフトJISを選択して保存しました。他に意味はないです。

それと、今回のHTMLは、IEで表示したスレッドを「名前をつけて保存」の
「Webページ、完全」で保存したものでした。>>161での推測通りです。

あと、取得方法の件ですが
2ちゃんねる検索では、ポイントを支払ってhtmlを取得するシステムなので
直接URLを入力しても無理なようです。
なので変換結果に問題があるのかもしれないのですが
今後も同じ保存方法をとることになりそうです。
まあ、今は読めれば問題ないのでこれで満足しています。

今回の相談ではお手数をおかけしました。本当に感謝しています。

164名無しさん:2005/04/25(月) 11:57:48
同じ保管庫にあったログの中で2ファイルが
全然ヒットしないので正規表現が正しくないようです。
のエラーメッセージがでました。
どの正規表現でもできないようなのですがどうすればいいですか?
教えてください
http://www.armd.ne.jp/lemona/logdata15.html

165164:2005/04/25(月) 11:58:41
書き忘れました。
もうひとつは
http://www.armd.ne.jp/lemona/logdata16.html です

166名無しさん:2005/04/25(月) 20:45:27
メインPCが故障して修理に出してしまったのでトリップがありませんが作者です。

まず>>164に関してですが・・・
これはどういう方法でHTML化したのでしょうね?
<DT>タグや<DD>タグがないのでレスの切り分けようがありません。
一応HTMLの体裁をしていますが実質プレーンテキストと変わりません。
かなり無理やりですが以下のようなのを書いてみました。

m#([0-9]+)() 名前:(.+) 投稿日:(.+?) <BR>(.*)<BR><BR> ([0-9]+ 名前:| <HR>)#mi

ところが変換してみるとdatの行数とスレの最終レス番が全然合わない・・・
と思ったらスレ途中に透明あぼーんがいっぱい入ってますね。
htmltodatには透明あぼーんを補う機能など無いのでその分レス番がずれて
しまいます。(dat化の結果にテキストエディタで透明にされた分だけ
改行を足せばレス番は合うかもしれませんが・・・)
というわけではなはだ適当な結果しか出せませんでした。

167名無しさん:2005/04/25(月) 22:55:44
次に>>165に関してですが・・・
こちらはぱっと見、まともなHTMLに見えたので簡単かなと思ったのですが
途中から名前欄「ミ,,゚Д゚ミ 保管時に削除しますた誉」の荒らし?が・・・
こいつの名前欄の前後には<B></B>タグがついてないので、仕方なく
(:?<B>)?などとする羽目に・・・すると正規表現があいまいになりすぎた
ためか変換が滅茶苦茶遅いです。結局、テキストエディタで

<B>ミ,,゚Д゚ミ 保管時に削除しますた誉</B>

のように前後に<B>タグをつけて一括変換してからのほうが手っ取り早かったです。
その上での正規表現ですが

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

168名無しさん:2005/04/26(火) 14:34:47
お忙しいところ失礼します。
DAT2HTML 0.30ep なんですが、どうでしょうか。


http://fire.kakiko.com/gaidenkuma/1.html

なんだっけ…ならほぼ変換されますが、コテハンのIDと
投稿日の日時が変なようです。

よろしくおねがいします。

169名無しさん:2005/04/26(火) 19:06:29
>>168さん
HTML中に
<META content="MSHTML 6.00.2800.1491" name=GENERATOR>
というのがあるのを見ると、DAT2HTMLで変換した結果をいったんIEで表示し
それをメニューから「名前を付けて保存」で保存したもののようですね。
この方法で保存した場合(以下略。>>161参照)

とりあえず、正規表現「DAT2HTML0.26」をベースにしたのですが、名前欄に
一致させるための「<b>(.*?)</B>」の部分が、トリップつきの名前だと
トリップの前の</B>にマッチしてしまっておかしくなるので、最長一致の
「<b>(.*)</B>」に変えました。(これは他の正規表現にも同じ問題があるかも・・・)

あと、投稿日の前の「:」の前の半角スペースがあったり無かったり数が
まちまちだったりしたので(これはIEの整形・加工の影響)、ここに「*」
を加えました。
結果は以下です。

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

170168:2005/04/27(水) 08:45:21
>>169
お手数かけました。

171164:2005/04/28(木) 09:30:21
>166
>167
ありがとうございます
自分もソースをもう一度よく見たら他のと全く違う形式に気づきました。
試してみて、ダメだったら別のHTMLミラーを探して見ます。

172163:2005/04/29(金) 21:56:41
ブラウザをFirefox/1.0.3に変更したら次のようなHTMLが保存できるようになりました。
http://wiki.fdiary.net/2chZelda/?c=plugin;plugin=attach_download;p=sample;file_name=findhtm2.zip

なので今後は、
1 Firefoxを使って2ch検索でhtmlを表示させる
2 「名前を付けてページを保存」の「htmlのみ」で保存。ファイル名はスレ固有の番号。
3 htmltodatでHTMLを呼び出し、EUC→SJISボタンを押す
4 正規表現は「DAT2HTML0.26」を選択し変換。変換が終わったらdatを保存。
5 datの1行目に編集を加え正しいスレタイに変更
という手順で使おうかと思っています。

以上、報告でした。

173</b><font color=#FF0000>(L44UP/ps)</font><b>:2005/05/07(土) 01:43:47
DAT2HTMLについて、ちょっとサポート掲示板をのぞいてきたのですが、
>>152でのタグ位置の変化は、どうやらVer.0.32からのバグ扱いされている
模様です。
最近のバージョン(といってもバージョン番号は正確にはわからないのですが)
では修正されているようですのでご注意ください。
(おそらく正規表現「DAT2HTML0.26」がそのまま使えるとは思うのですが)

174143:2005/05/27(金) 13:28:36
再び失礼致します。
http://jbbs.livedoor.jp/movie/3205/storage/1090591778.html

上記スレッドなのですが、投稿日欄やトリップ欄が壊れた状態で変換されてしまいます。
他の正規表現も試してみましたが、今度はレス番が1つズレるという結果に成りました。
何とか、正常に変換される事は可能なのでしょうか?

175名無しさん:2005/05/27(金) 18:30:43
>>174
EUC->SJISにした後>>63の正規表現で変換できましたよ。
もう一度ログを落とし直してみるとか。

176 ◆/vmukiyuzw:2005/05/27(金) 18:58:50
>>174さん
正規表現「jbbs過去ログ」で一見問題なく変換できた・・・と思ったら
元スレがレス番170まであるのにdatは168行しか変換できません。
調べてみると、元スレのレス番15と19が飛んでいます。

>>166でも書きましたが、htmltodatには透明あぼーんを補う機能など
無いので、その分レス番がずれてしまいます。
対処としては、datに無理やり透明あぼーんを表現する行を突っ込む位しか
思いつきません。
変換後のdatをテキストエディタで開いて、15行目と19行目に

透明あぼーん<>透明あぼーん<>透明あぼーん<>透明あぼーん<>

とか入れてみるとかどうでしょう。

177 ◆/vmukiyuzw:2005/05/27(金) 19:03:06
あれ?トリップの仕様が2chと一緒になったのかな?
今までここでは(L44UP/ps)と名乗っていた作者です。

178175:2005/05/27(金) 19:06:11
確認しなおしたら作者さんの言う通りになってた・・・早とちりすみません。

179143:2005/05/30(月) 17:54:20
>>176
試してみました所、正常に閲覧する事が可能に成りました。
誠に有難う御座います

180名無しさん:2005/07/15(金) 02:32:36
ぜろちゃんねるの過去ログは変換出来ますでしょうか?
一覧やこのスレに出ている例は全て試しましたが、出来ませんでした。
変換したいのは、下のhtmlです。

http://0ch.mine.nu/jikken/kako/104/1043234114.html
http://0ch.mine.nu/jikken/kako/104/1049781744.html

181180:2005/07/15(金) 05:04:16
すみません。自己解決しました。
同じディレクトリにあるdatファイルを取得すれば良いだけでした。
書き込んだついでに一言。
htmltodatには昔からお世話になっております。ありがとうございます。

182名無しさん:2005/09/05(月) 18:30:31
どうもうまくいかないので、宜しければ正規表現を考えて頂けないでしょうか。

こちらです。
http://snapshot.publog.net/dat.php?url=http://ex11.2ch.net/test/read.cgi/news4vip/1119660972/

ところで、上と同じスレですが
http://snapshot.publog.net/html/news4vip/2005/06/25/095612.html
は同じ型(?)なのでしょうか。

183 ◆/vmukiyuzw:2005/09/05(月) 20:41:10
>>182さん
若干余分なものがくっついてますが基本的には「read.cgi7.00?」と似た形をしているので
これをベースに試したところ、日時・ID欄の前のコロンの全角半角が違うだけだったので、
これを変えるだけで基本的には変換できました。

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

但し2点ほど考慮事項が。
1.メール欄に mailto:.sage のように無駄な(?)ドットが必ず一個ついてくるようです。
 これを忠実に再現するなら上の正規表現のままでいいですが、不要だと思われるならば
 mailto:\.? とでもすれば取り除けます。
2.htmltodatではスレタイの情報は<title>タグから取得しているのですが、このスレは<title>タグが
 本来のスレタイではなく 「http://ex11.2ch.net/test/read.cgi/news4vip/1119660972/
 みたいにURLになっちゃっているので、本来のスレタイに打ちかえる必要があります。

> http://snapshot.publog.net/html/news4vip/2005/06/25/095612.html
> は同じ型(?)なのでしょうか。

ソースの見た目は特に違いはなさそうでしたし同じ正規表現で変換できましたけど。

184182:2005/09/06(火) 13:49:49
即答ありがとうございます。datに変換出来ました。
これで、snapshotにしか残っていないスレッドもdat化出来ます。
ありがとうございました。

185名無しさん:2005/09/06(火) 17:04:55
 a

186名無しさん:2005/09/07(水) 17:17:51
afgeae test

187182:2005/09/09(金) 20:43:52
すみません、またお願い出来ませんでしょうか。

http://p2.chbox.jp/read.php?url=http://live20.2ch.net/test/read.cgi/liveanb/1126241150

↑これなのですが、>>182のようなURLでは取り出せないようなのです。
ソースを見てみると、何とも難しそうなのですが、出来ますでしょうか・・・。

188 ◆/vmukiyuzw:2005/09/10(土) 13:52:59
>>187さん
これはp2によるHTMLですかね。
Javascript等のガラガラが入りまくりでhtmltodatとしては非常に
苦手なパターンです。

まず、htmltodatの仕様からくる致命的な不都合が2点。

1.htmltodatでは日時・ID欄は一つのものとしてとらえているので
 日時とIDの間に挟まっているものは取り除けません。

2.htmltodatではメール欄は名前欄より前に「mailto:〜」の形式で
 書かれていることを前提にしているので、このHTMLのように
 名前欄の後ろにしかもプレーンテキストでポンと置かれても
 それがメール欄である事を識別するすべがありません。
 (しかもこの形だと日付欄と区別するのも難しい)

とはいえ、名前欄と本文だけはそれなりに取り出せたので一応
書いておきます。後は申し訳ないですがエディタ等で前処理なり
後処理なりして整形してください。

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

あと、レス番が256から始まってますがこれをdat変換してもしょうがないので
「全部」のURLで変換してください。
それからスレタイにも余分なものが付いてますのでご注意を。

189 ◆/vmukiyuzw:2005/09/10(土) 13:59:37
あと、技術的な解決法ではありませんが、サイト管理者さんに
生datでの提供をお願いしてみるというのはどうですかね。
(にくちゃんねるとかは確かこれによりdatの提供もされるように
なったという経緯があったはず)

・・・とふと思ったけどサイトを見に行ってみると既に要望されて
いる方がいらっしゃるようですね。
(しかもスルーされてる模様 orz)

190182:2005/09/10(土) 14:52:39
>>188-189
ありがとうございます!これで充分です。
>>182のようなURLで取り出せないものは、こちらのほうを使わせて頂きます。

191名無しさん:2005/09/10(土) 23:19:50
http://sapporo.cool.ne.jp/morikake/morikake3.html
このhtmlの変換をしたいと考えています。
何だっけ…が一番近いようなのですが、日付のタグやIDのリンクが悪さをするようです。
ログを置き換えて処理しようとしたのですが、IDのリンクがうまく処理できず、煮詰まってしまいました。
ご教授お願いします。

192 ◆/vmukiyuzw:2005/09/11(日) 13:55:42
>>191さん
これも>>189の1と同じ問題で、日時とIDの間に挟まっているアンカータグを
取り除く事ができません。申し訳ないですがエディタ等で前処理なり
後処理なりして整形してください。

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

アンカータグが残っている影響でプレビュー欄が変になりますがご容赦ください。
あとこのHTMLにはスレタイがないのでご注意を。

193名無しさん:2005/09/11(日) 14:36:12
>>189
やあ、(´・ω・`)
オフラインでも保存されたスレが見たいから
dat提供を頼んでみたけどスルーされたのさ 。

多分、182の人はそんな俺の書き込みを見て何か思ったエロイ人。

194 ◆/vmukiyuzw:2005/09/11(日) 18:44:08
>>192
> これも>>189の1と同じ問題で、
>>188の1の誤りでした。失礼。

195191:2005/09/11(日) 20:15:31
>192
どうもありがとうございました。タイトルは分かっているのでなんとかしてみます。

196182:2005/09/16(金) 19:51:41
snapshot(というか「p2.chbox.jp〜」)のスレを
htmltodatで一括変換してみたところ(タイトルが違うのは承知の上で)
8スレ中 dat変換に成功したのは4スレのみでした。。
・・何故なのでしょう?

対象スレ:
(1)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126372408/all
(2)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126372282/all
(3)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126368731/all
(4)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126372069/all
(5)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126378029/all
(6)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126166580/all
(7)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126363579/all
(8)http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/news/1126373580/all

このうち、dat変換に成功したのは(1)(2)(6)(8)でした。

197 ◆/vmukiyuzw:2005/09/16(金) 21:53:49
>>196さん
>>188でも書きましたが、p2によるHTMLにはJavascript等のガラガラ(※注:htmltodatから
みると邪魔でしかない要素を勝手にこう呼んでいます)が大量に含まれています。
変換できないHTMLは、このガラガラがあまりに多すぎて、まさにエラーメッセージどおり
「一行が長すぎる」のエラーに引っかかってしまっている状態です。
で、内部バッファのサイズ制限を多少ゆるくして回避できないか試してみましたが、今度は
BREGEXP.DLLの制限(readmeにちょっと書いてますがマッチする文字列長が長すぎると
fatal errorを起こすというもの。直してくださいよBabaさん!てこんなとこで書いても意味
ないですが)に引っかかってしまう始末。

結局のところ、前処理で不要なものを取り除いてしまう以外回避策はないかと思います。
ご自分の掲示板でも既に気づかれていたようですが、<dd id= で始まる行が一番のガン
なので、こいつらを全部取っ払っちゃってください。単に空行に変換するだけでも充分です。

これで(1)〜(8)まで全てエラーが出ないことを確認しましたが、一点だけ問題がありました。
>>188で書いた正規表現ですが、<dd>タグの後に一個半角スペースを付けていたのですが、
あぼーんのあったレスにはこの半角スペースが存在しないためマッチしませんでした。
なので、?を付けて<dd> ? として以下のように修正します。

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

198182:2005/09/19(月) 20:13:30
御返事遅くなり申し訳ありません。
不具合を取り除く正規表現がなかなか厄介でしたが(ヘタレなので)、何とかなりました。

snapshotのスレも、何とかなりそうです。ありがとうございました。

199名無しさん:2005/09/20(火) 23:24:03
韓国人と仕事で困った事・過去ログ倉庫一覧
http://cool.kakiko.com/korea00/log.html
こちらのログの変換をしようとしたら、
「1行が長すぎるか、正規表現が正しくないようです。」
とでて変換できません。
他力本願で申し訳ありませんが、対応はできないでしょうか?

200 ◆/vmukiyuzw:2005/09/21(水) 09:48:27
>>199さん
このHTMLは何者だろう・・・?
http://lime.kakiko.com/korea/log/log01.html
の一番最後に「名前:Katjusha extender 投稿日:Katjusha extender
倉庫に落ちました。。。 」てのがついていたので、かちゅ〜しゃで
表示したものをHTML保存したものかなあ?

ともあれ、HTMLの形式としては「DAT2HTML0.26」に似ていて、違いは
・日時・ID欄の前が単に全角コロンではなく「投稿日:」と付いている
・名前欄の後の</FONT>タグが省略されることが無い
程度だったので、これをベースにして以下のようなのを書いてみました。

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

あと、これらのHTMLにはスレタイの情報がないのでご注意を。

201名無しさん:2005/09/21(水) 21:25:06
>>200
無事変換できました。
スレタイについては、datを編集して対応します。
◆/vmukiyuzwさん、ありがとうございました。

202 ◆/vmukiyuzw:2005/09/27(火) 20:39:13
htmltodatをバージョンアップしました。(0.2.0)
・UTF-8→SJIS変換機能を実装。
・HTTPステータス301,302等の時にエラーにせずリダイレクトするよう修正。
・<title>タグに余分なものが含まれるときにスレタイトルが取得できない
 不具合を修正。
・UIの細かい改善(「URLまたはファイル名」欄でcntl+aで全選択できるよう
 にした、ファイル名のドラッグ&ドロップができるようにした)。

今回の変更点メインは、以前>>137で予告していて、http://2ch.dumper.jp/
への対応を見越してつけた、UTF-8対応です。
http://2ch.dumper.jp/のスレッドは、UTF8->SJIS変換をした後であれば
正規表現「read.cgi7.00?」で変換できるようです。

203 ◆/vmukiyuzw:2005/09/27(火) 20:49:12
>>202
あ、一つ書き忘れてました。
> http://2ch.dumper.jp/のスレッドは、UTF8->SJIS変換をした後であれば
> 正規表現「read.cgi7.00?」で変換できるようです。
のですが、スレタイに「 - DUMPER.JP」というのがくっ付いてきてしまいます。
申し訳ないですが前処理か後処理で取り除いてください。

204 ◆/vmukiyuzw:2005/09/30(金) 22:59:06
またバージョンアップしました。(0.2.1)
・be鯖からの取得が「500 Internal Server Error」になってしまう不具合を
 修正。
・9x系のPCで動かすと正規表現欄やHTMLソース欄の右端が欠けてしまって
 編集不能になる不具合を修正。

ちょっと今回の修正はうまくいってるかどうか自信ありません。
不具合があればご報告ください。

205182:2005/10/03(月) 20:17:24
バージョンアップありがとうございます。
色々試させて頂かせております。

早速ですが、また解決して頂きたいhtmlがあります。

http://f55.aaa.livedoor.jp/~vipper/browjer/projectlog2.html
http://f55.aaa.livedoor.jp/~vipper/browjer/projectlog3.html
http://f55.aaa.livedoor.jp/~vipper/browjer/projectlog4.html
http://f55.aaa.livedoor.jp/~vipper/browjer/projectlog5.html

「〜projectlog1.html」もありますが、これは何とかなりました。
残り4つなのですが、なかなか合致しません。
宜しければ、調べて頂けないでしょうか。

あと、上の4スレとも自分の環境ではhtmltodatでの呼び出しは
文字化けして出来ませんでした。
htmlをDLしてドラッグ&ドロップ(←大変便利です)すると問題無いのですが・・。

206 ◆/vmukiyuzw:2005/10/05(水) 17:49:48
>>205さん
レス遅くなってすみません。
正直手こずりました・・・

名前欄・メール欄のあたりのバリエーションがさまざまで、一発でマッチするパターンが
なかなか見つけられませんでした。
なので、or表現を使いまくって、結果以下のようになりました。

m#<dt.*?>.*?(?:<B>|<FONT.*?>)([0-9]+).+?:(?:<A.*?href="mailto:(.*?)">|<FONT .*?>)(?:<b>| )(.*?) *?(?:</b></font>|</font>|</b></a>|</a>) ?:(.*?) *?<dd.*?> ?(.*?)(<layer|<br> *?<br> *?<A *?id=.*?>|<br> *?<br> *?</d)#mi

かなり複雑な正規表現になってしまったので、変換には結構時間がかかると思います。

あと、文字化けするのはHTMLがgzip圧縮されているためです。(>>43参照)
対処としては
・ログをダウンロードして適当な解凍ツールで解凍(数が多い場合はこれがお勧め)
・ブラウザで表示し、「名前をつけて保存」で保存
・ブラウザで表示し、「ソースの表示」でエディタ等で表示し、保存(これだとHTMLが
 適当に加工されることもないので私としてはお勧め)

htmltodat自体に解凍機能をつけるのは結構大層な改造になってしまうのでできれば
やりたくないのですが、なぜ化けてるのかがわからないのはまずいと思うので、
警告メッセージくらいは出すようにしようかなと思っています。

207182:2005/10/05(水) 20:59:33
>mukiyuさん

ありがとうございます。「|」で4つに分けてあったりして、何とも凄いです。
ちょっと試してみたんですが、本当に変換に時間がかかりますね。

お時間をとらせてしまって、申し訳ありませんでした。
今後共宜しくお願い致します。

208 ◆/vmukiyuzw:2005/10/06(木) 20:56:55
htmltodatをバージョンアップしました。(0.3.0)
・beコード削除機能を実装。
・名前欄とメール欄の位置が逆になっているHTMLに対応するため、メール欄逆転
 機能を実装。
・HTTP受信時にgzip圧縮されたデータを受け取るとエラーになるよう修正。

いろいろとご指摘いただいた182さん(663さんとお呼びしたほうがいいでしょうか?)
に感謝します。

209 ◆/vmukiyuzw:2005/10/13(木) 02:19:26
htmltodatをバージョンアップしました。(0.4.0)
・アンカー削除、beコード削除等を別ウィンドウで表示するよう修正。
・メール欄逆転機能を削除。代わりに、より汎用的に対応できるよう、
 変換結果式を指定できるよう修正。
・変換前処理・後処理機能を実装。

オプションのあたりがごちゃごちゃしてきたのと、今後の拡張性も考え、
別ウィンドウに切り出すようにしました。
でもモーダルではなくモードレスウィンドウなので、表示したまま
メインウィンドウの操作をすることも可能です。

210 ◆/vmukiyuzw:2005/10/13(木) 02:21:30
まず変換結果式欄についてですが、何も入力しなければ今までどおり
$3<>$2<>$4<>$5<>
になります。
名前欄とメール欄が逆転しているようなケースでは、
$2<>$3<>$4<>$5<>
と指定してください。
また、にくちゃんねる(makimo.to)のようにメール欄の表現が複数あるような
ケースでは
$4<>$3$2<>$5<>$6<>
のような指定も可能です。
これを前提としたにくちゃんねるの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>)#mi

でいけると思います。

211 ◆/vmukiyuzw:2005/10/13(木) 02:22:31
次に変換前処理・後処理についてですが、今まで「前処理か後処理で対処して
ください」と書いてきたことのいくらかがこれで対処できるようになると思います。
例えば、>>196-197のようなガラガラについてですが、前処理で

s#<dd id=.*?\n##ig

とでも書けば取り除けます。
>>203で書いたhttp://2ch.dumper.jp/のスレタイとかでも

s#(<title.*?) - DUMPER.JP(</title>)#$1$2#

とか書けば取り除けます。

212 ◆/vmukiyuzw:2005/10/13(木) 02:23:54
あと、後処理については実はあまり有効な使い道を考えてませんw
(前処理があるなら後処理もいるかなーくらいのノリで付けてたりして)
まあ、前処理でもbeコード削除でも取り除けないゴミを除去するくらいには
使えるんじゃないでしょうかね。例えば>>196-197ですがbeコード削除を
しても (p)ID:qEFalaaz0(7) みたいにp2コード?が残っちゃいますよね。
これを取り除くには

s#(.*?<>.*?<>.*?)[(]p[)](ID:.*?)[(].*?[)]#$1$2#

などとすればよいかと思います。

213 ◆/vmukiyuzw:2005/10/13(木) 22:05:41
連日ですがバージョンアップしました。(0.4.1)
・セパレータが<>以外だと正しく変換できない不具合に暫定対応。

現在、変換結果式のセパレータを「<>」以外のもの(カンマ区切りとか)に
されるとうまく動作しません。
で、後処理で変換できるようにしたつもりだったんですが、処理の順番で
うまくいっていませんでしたので、これを修正しました。
例えばかちゅ〜しゃライクなカンマ区切りにしたいような場合だと後処理を
以下のように指定します。
(注:あくまで例であり、このようにすればかちゅ〜しゃで読めるようになると
いうわけではありません)

s#(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)#<b>$1</b>,$2,$3,$4,$5#

214名無しさん:2005/10/16(日) 12:21:57
乙乙です

215 ◆/vmukiyuzw:2005/10/17(月) 18:30:13
バージョンアップしました。(0.4.2)
・HTTP受信時にgzip圧縮されたデータを受け取ると解凍するよう修正。
・変換後処理の欄で改行文字やスペース文字を表示できるようにするのを忘れて
 いたので修正。

今回は不具合対応のみです。
今後の予定としては変換オプションのファイル保存・呼び出し対応等。

216 ◆/vmukiyuzw:2005/10/21(金) 22:48:04
バージョンアップしました。(0.5.0)
・変換オプション中の前処理・変換結果式・後処理をそれぞれファイルに保存・
 一覧選択できるようにした。
・使用しているzlibのバージョンを1.1.3→1.2.3に変更。
・v0.4.2のエンバグ(ローカルHTMLが正しく読めない場合がある等)を修正。

217 ◆/vmukiyuzw:2005/10/21(金) 23:47:01
前バージョン(0.4.2)では、かなり初歩的な、でも致命的なバグを仕込んでしまいました。
ダウンロードされた方々、申し訳ありません。

あと、zlib 1.2.3 に対応したgzip_delphi2.zipを公開されている、Open Jane Project の
◆184NBKmVW6氏に感謝します。

218集計人:2005/10/23(日) 23:17:32
集計人と申します。自サイト"http://www.usamimi.info/~shukeisho/&quot;
内のphpスクリプトで、htmltodat使ってます。
"htmltodatのようなもの"の補足文書がすごい参考になりました。感謝感謝!

219 ◆/vmukiyuzw:2005/10/29(土) 00:37:44
バージョンアップしました。(0.6.0)
・文字コード自動判別機能を実装。
・取得即変換機能を実装。
・変換前処理のちょっとしたデバッグ機能を実装。
・変換前処理・後処理の保存時に不要な改行コードがついてしまうバグを修正。
・その他細かい修正(URL欄でEnterキーを押せば取得動作をするようにした・
 一括変換で変換中止ボタンを押してもそのファイルを処理中は中止できなか
 ったので、メインの変換処理に割り込みをかけられるようにした)

今回の変更点メインは文字コード自動判別です。
もともとは、HTML欄にコピペされた場合に変換するタイミングがわからないので
ボタンで変換するようにしていたのですが、そんな使い方してる人はほとんど
いないだろうと思い(実用上あんまり使い物になりませんし)、自動判別するように
しました。
これで、EUCやUTF-8のHTMLでもボタンを押して変換する必要がなくなりました。
(一括変換のウィンドウからもチェックボックスをなくしました)

次に取得即変換ですが、正規表現や変換オプションが同じものが使えるHTMLを
取得する際に、いちいち変換開始ボタンを押さなくてもいいようにと考えてつけました。
文字コード自動判別もそうですが、省けるアクションはなるだけ省けるようにして
使い勝手を向上させようという方向です。
# 後はdatファイル名まで自動で確定できればバッチコマンド的に動作させることが
# 可能なのですがこれがなかなか難しい・・・今後の研究課題です

220 ◆/vmukiyuzw:2005/11/03(木) 16:26:35
バージョンアップしました。(0.6.1)
・変換前処理で改行コード(Enterキー)が入力できないバグを修正。
・HTMLソース等で64kb(65,546バイト)以上入力できないバグを修正。

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

一個目のは単純なバグで、Enterキーを受け付けるかどうかというプロパティ
(WantReturnsプロパティ)というのがあるのですが、なぜかこれだけOFFに
しちゃってました。
(しかし後処理でも同じコンポーネントを使っているのになぜ前処理だけ変えて
しまったのかは不明です。デフォルトではONなのに・・・酔っぱらってたのかなw)

二個目ですが、使用しているコンポーネント(というかそれの継承元である
RichEditコントロール)に、デフォルトで64kbまでしか入力できないという制約が
あり、MaxLengthプロパティというのを適切な値に設定しておかないといけな
かったようです。
(プログラム板のくだすれDelphiスレで教えていただきました。
http://pc8.2ch.net/test/read.cgi/tech/1126590039/879-882
これで、昔から疑問に思っていた「HTMLソース欄に直接コピペすると途中で
切れる」現象も解決できたと思います。

221名無しさん:2005/11/06(日) 13:48:08
お助け下さい。
下記の過去ログをdat変換したくて、このスレの正規表現も片っ端から試してみましたが
どれも歯が立ちません。
http://makimo.to/2ch/pc7_software/1095/1095427149.html
htmltodatのバージョンは0.6.1です。よろしくお願いします。

222 ◆/vmukiyuzw:2005/11/06(日) 15:05:03
>>221さん
にくちゃんねる(makimo.to)のdatは>>83の方法、または>>158の方法で取得できます。

どうしてもhtmltodatで変換したいんだったら>>210の方法で・・・と書こうとして正規表現に
抜けがあるのを見つけました。
ということであらためて・・・
変換結果式欄に
$4<>$2$3<>$5<>$6<>
と指定した上で(一覧に「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
でできると思います。

223 ◆/vmukiyuzw:2005/11/06(日) 15:12:05
>>222
ああ、まだ漏れが・・・
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
にしてください・・・

224221:2005/11/06(日) 15:37:58
>>223
できました。
素早いお返事、ありがとうございました。

225 ◆/vmukiyuzw:2005/11/06(日) 19:04:45
バージョンアップしました。(0.6.2)
・文字コード自動判別をオプションで指定できるよう修正。

文字コードはHTML中のmetaタグのcharsetを見て判別しているのですが、
稀にcharsetで指定された文字コードと実際の文字コードが異なるケースが
あるようなので、一応オプションでON,OFFできるようにしました。
基本的にはONのままで使用して問題ないと思います。

226名無しさん:2005/11/07(月) 02:01:16
http://www.geocities.jp/karc304/gurps-basic/17th.html

バージョン0.6.2でこのURL変換しようとすると、
読み込み行とバッファサイズばかりが増えてしまい、
変換行がさっぱり増えてくれません。
やがてhtmltodatが固まってしまいました。

このhtmlはdat2htmlの0.32fpで変換されたもののようなので、
>>152に書かれている正規表現を使用したのですが、
正規表現が間違っているせいなのでしょうか?
挙動がちょっとおかしかったので、バグかもしれないと思い報告に来ました。

227663:2005/11/07(月) 02:45:02
>>226さん
これではどうでしょう(管理人さんでなくてごめんなさいです)

m#<DT>([0-9]+) :<font color=green>(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</b>(?:</A>)?</FONT> :(.*?)<DD> ?(.*)<br><br>#mi

228 ◆/vmukiyuzw:2005/11/07(月) 02:56:49
>>226さん
正規表現がおかしいときに挙動不審になるのは仕様です(開き直り)
ところでこれは何となくdat2htmlにスキンを適用して変換したもののような気がする・・・
(気がするだけですが)
とりあえず
m#<DT>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<b>(.*?)</B>(?:</A>|</FONT>).*? :(.*?)<DD> ?(.*)<BR><BR>#mi
でどうでしょう。

#なんかどれかの正規表現ととかぶってる気がする

229 ◆/vmukiyuzw:2005/11/07(月) 02:59:29
うわ先に書かれてるし><
そっちでもOKですね
リロードしてなくてごめんなさい663さん


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板