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

htmltodatサポートスレッド

1104名無しさん:2024/04/02(火) 11:34:48
>>1080から5chの仕様が変更されたようなので正規表現をお願いできないでしょうか?
#メールが空欄になってしまい、すべてのレスが”壊れていますになり、日付が取得されません、
#03/31に変更?k"

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

1110名無しさん:2024/10/24(木) 19:33:29
5ch(旧2ch)の過去ログが鯖移転を経て復旧し始めてるようです
例:https://kako.5ch.net/test/read.cgi/liveplus/1261703768/

ですが>>1109だとdat変換できない様です
というかソフトがハング状態?応答停止になってしまいますね。これはおま感でしょうか

1111 ◆/vmukiyuzw:2024/10/26(土) 03:40:36
>>1110さん
https://agree.5ch.net/test/read.cgi/operate/1697962402/
とかで話されてることかな?
kako.5ch.net のサーバで使われてる read.cgi は

read.cgi ver 07.5.6 2024/10/18 [ver:kako]

となっていてバージョンアップしており、前のバージョンと比べて
dat変換には不要な要素が増えていて
「一行が長すぎるが、正規表現が正しくないようです」エラーが
出てしまうようです(自分の環境ではハングはせずこのエラーになります)。
まあ一応対処はできたと思うのですが、先に書いておきたいことが…

現状、5chの現行ログであれ過去ログであれ read.cgi で読もうとすると
全て itest.5ch.net にリダイレクトされてしまうようです。
itest の出力はスクリプト等でクライアント側でHTMLを組み立てる
タイプの奴なので htmlodat ではdat変換できません。
てことは>>1109以前から書いてきた 5ch.net 向けの正規表現等は
もう使えなくなる可能性があります。もう誰も使ってないだろうけど
htmltodatByFiddler も使えなくなってるだろうなあ…

まあ現状、今生きてるサーバの現行ログ及び過去ログはdatの形式で
取得できるし、対応してる専ブラなら読めるし、実際はそれほど困る
ことはないのかな。kako.5ch.net のログも専ブラで読めるようになれば
いいのに。
ともあれ長く、遅くなってしまったので
・kako.5ch.net のログを htmltodat で取得するには
・5ch.net のdatを(itestに飛ばされずに) htmltodat で取得するには
の説明はまた明日にでも(予定w)

1112 ◆/vmukiyuzw:2024/10/27(日) 04:19:51
>>1111続き
まず「kako.5ch.net のログを htmltodat で取得するには」から。
>>1109を少し修正しました。
https://agree.5ch.net/test/read.cgi/operate/1697962402/464
にあった
https://kako.5ch.net/test/read.cgi/news/1234567893/
を変換したとき、スレタイにURLが出てきて「え、何か間違った?」と思ったのですが
そういうスレだったようです(スレ番1234567890を狙ってスレ立て、みたいな)


コメント:
# 5chのread.cgi 08系からの出力を変換-2024/10/27
# 5chのcgi仕様変更(07.5.6 2024/10/18[ver:kako])に対応
#

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
s#</article><div class="navmenu">(.|\n)*##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).*?<span\ class="date">(.*?)</span>
(?# レス内容)</details><section\ class="post-content">(.*?)</section>
`mix

1113 ◆/vmukiyuzw:2024/10/27(日) 04:23:27
続いて、5ch過去ログ(現行サーバ・板でdat落ちしたもの)用です。
やってることは、read.cgiへのリクエストを過去ログへのdatへの
リクエストに変換してるだけです。
(5chのお知らせからの引用ですが
/板名/oyster/スレッドキー上位4桁の数字/スレッドキー.dat
例: https://agree.5ch.net/operate/oyster/1684/1684064837.dat

5chがJaneと手を切ってから解放されてる方法で、対応してる
専ブラも多いと思います。
htmltodatとしてはURLを変換して取得結果をそのまま出力しているだけなので
HTML→dat変換処理は通っていません。なのでプレビューは出ないです。


コメント:
# 5chのdatをread.cgiを介せずそのまま取得-2024/10/27
# 5chの過去ログ(現行サーバでdat落ちしたもの)用
#

URLの変換:
s#https?://(.*?)/test/read\.cgi/(.*?)/(\d{4})(\d+).*#http://$1/$2/oyster/$3/$3$4.dat#

dat変換をしない(前処理のみ行う):
true

アンカー削除:
false

1114 ◆/vmukiyuzw:2024/10/27(日) 04:25:24
あと、一応5ch現行ログからdatへの変換用です。
大抵の専ブラはこんなのなくても読めるはずなので特にニーズはなさそうですがw


コメント:
# 5chのdatをread.cgiを介せずそのまま取得-2024/10/27
# 5chの現行ログ用
#

URLの変換:
s#https?://(.*?)/test/read\.cgi/(.*?)/(\d+).*#http://$1/$2/dat/$3.dat#

dat変換をしない(前処理のみ行う):
true

アンカー削除:
false

1115名無しさん:2024/11/01(金) 02:17:24
過去ログに関しては2ch.scとそれ以前のログはみみずんに随分助けられてますね
みみずんに関しては最近のブラウザではhttpsに強制されるせいで
httpでしか見れないみみずんが見れなくなったと思ってる人も多そうで


新着レスの表示


名前: E-mail(省略可)

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

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

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

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