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

htmltodatサポートスレッド

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

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
おっつおっつ


新着レスの表示


名前: E-mail(省略可)

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

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

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

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