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

htmltodatサポートスレッド

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

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<>

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

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


新着レスの表示


名前: E-mail(省略可)

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

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

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

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