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

htmltodatサポートスレッド

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変換結果」ウィンドウ上で同様に<><><><>の行を削除してから保存する、
というのもあります。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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