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

htmltodatサポートスレッド

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

1105 ◆/vmukiyuzw:2024/04/03(水) 03:02:34
>>1104さん
修正箇所はすぐわかったのですが別件で手こずってました…
その件はまだ片付いてないのですがとりあえず。

HTMLソース見てみると、各レスのメール欄と投稿日欄の間に
「垢版」という謎のリンク(5ch運営が推してるUPLIFT?に
関連してるぽい)が追加されたので、以前の正規表現では
マッチしなくなってます。それ以外に変更はなさそう。
追加部分にぴったりマッチさせる正規表現書いても良かった
のですがまだ変更ありそうな気がしたので
</summary><span\ class="date">の前に.*?(何文字でもいい
最短マッチ)を追加するだけにしました。


コメント:
# 5chのread.cgi 08系からの出力を変換-2024/04/03
# 5chのcgi仕様変更(07.4.7 2024/03/31)に対応

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

1106名無しさん:2024/04/03(水) 20:12:10
>>1104さん、ありがとうございました。
ただし、以下が失敗します
http://kes.5ch.net/test/read.cgi/operatex/1690139851/5.75.101

1107 ◆/vmukiyuzw:2024/04/03(水) 21:29:08
>>1106さん
「失敗します」とは具体的にはどういう状況でしょうか?
こちらでは問題なく(いや、本当はスレタイが取れないという問題が
あるのですがそれはまた改めて)変換できているようなのですが。

例示いただいたレス番はどれも名前欄に🐙(蛸マーク?)が
含まれているようですがこれの表示で問題が起きてるってことですかね?
差し支えなければお使いの専ブラ教えてください。

1108名無しさん:2024/04/04(木) 12:08:02
>>1107>さん
04/03は”壊れています”が出ました(メール欄なし、日付取得不可)
04/04朝現在は名前欄にタコ(<span>🐙</span>)が含まれて正しく変換されます
(JaneViewを使用してます)

1109 ◆/vmukiyuzw:2024/04/04(木) 22:57:30
>>1108さん
えっと、昨日はうまくいかなかったけど今日はうまくいったと???
結局うまくいったということでいいんでしょうか…?^^;

専ブラの種類をお聞きしたのは名前欄の<SPAN>タグや数値文字参照に
対応してないものがあるのかなと思ったからです。Viewだと問題ない
はずですね。

あと>>1107で書いた「スレタイが取れない」問題ですが、
>>1105で書いたprm内容のうち、前処理の

# ガラガラ削除
s#^(.|\n)*?<div id="thread"##igk

(HTMLソース先頭からレス1の直前までを削除する意図)
のせいで、<title>〜</title>を削除してしまうという凡ミスを
やっちゃってました。ですがこれは>>1105の元にした>>1082から
起きていたはずなんですが…
ともあれ、「先頭からレス1の直前までを削除」を
「</title>タグの直後からレス1の直前までを削除」するように
変更します。


コメント:
# 5chのread.cgi 08系からの出力を変換-2024/04/04
# 5chのcgi仕様変更(07.4.7 2024/03/31)に対応
# 前処理のガラガラ削除でスレタイを削除してしまうバグを修正

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#(</title>)(.|\n)*?<div id="thread"#$1#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


新着レスの表示


名前: E-mail(省略可)

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

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

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

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