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

htmltodatサポートスレッド

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

1073 ◆/vmukiyuzw:2022/09/14(水) 01:29:16
あれ?トリップ外れちゃったけど>>1072は私です

10741071:2022/09/14(水) 06:53:06
>>1072
質問内容の不備大変失礼しました
また、今に至るも迅速なサポート続けておられることに感謝と敬意を表します

先質問の件ですが、5ちゃんねるの様々な板で試してみたところスレ中に記述してある過去ログのURL全てで同じエラーが返ってくる状態だったので例示に及ばずと勝手に判断してしまいました
代表として一番不便を被ってる市況2のものを抜粋・提示します

https://hayabusa9.5ch.net/test/read.cgi/livemarket2/1663088406/1
より
https://hayabusa9.5ch.net/test/read.cgi/livemarket2/1663077424/

proxyは利用しておらず、ネットはワイモバイルのポケットwifiを使用しています
ネットブラウザ(firefox)ではアクセスできることとの整合性が取れないので質問差し上げた次第です

何かお気づきになりましたらサジェッション頂けるとありがたいです
dat化できない類の問題ではないので本質問は埒外とのことでしたら了解致します

1075名無しさん:2022/09/14(水) 10:11:51
ファイアーウォールでブロックされてるとか?

1076 ◆/vmukiyuzw:2022/09/14(水) 21:38:00
>>1074さん
>>1071のレス内容を見るに、今までその環境で使えていたが
急にエラーが出るようになったということでしょうか?
貴方が自分の環境を変えたのでなければ、やはりサーバー側の
問題である可能性が高いと思うのですが、もしそうであれば
もう解消してませんか?今でもエラー出ますか?

> ワイモバイルのポケットwifi
つい最近、小規模だけどソフトバンク回線の通信障害があったと
耳にしました。たまたまそのタイミングであった可能性は
あるかもしれません。それがこのエラーにつながるのかどうかは
わからないですが。

10771071:2022/09/15(木) 18:47:01
>>1076
ご返信ありがとうございます。先ほど試してみたところ何の問題もなくスレ取得できました。自環境に変更は行っておりません。
症状発生して即1071投稿したわけではなく数日様子見してからの投稿だったのですが、類似の質問・経験談が上がってこない所を見るとレアなケースのようで。

以後トラブル発生の際はもう少し様子見期間を延ばすことを心がけます。
なんともバツの悪い話で申し訳ございませんでした。

1078 ◆/vmukiyuzw:2022/10/20(木) 07:51:34
唐突ですが
「5ch過去ログ倉庫を見やすくするためスレッドキーをタイムスタンプに変えて表示」
てスクリプトを作りました。
http://mukiyu.g.ribbon.to/ の 5chKakologSouko てやつです。

経緯ですが、以前>>1035-1037みたいなやり取りがあって、その中で
>>1036さんに過去ログを探す便利なサイトをご紹介頂き、時々
使っていました。ただ、最近そのサイトはあまりうまく動いてない
みたいです。(過去ログを取りこぼしてることが多い)

で、自分が提案した過去ログ倉庫ですが、確かに見づらく、
>>1037でブックマークレットを書いてみたのですがこの用途には
使い勝手がよくないと思ったので、Chrome等のアドイン
Tampermonkey のスクリプトに書き直してみました。
こういう過去ログの探し方をする方がどれだけいるかわかりませんが
そういう方には役に立つかもしれません。

1079 ◆/vmukiyuzw:2022/10/21(金) 06:50:43
>>1078
で公開したスクリプトですが少し修正しました。

「5ch過去ログ倉庫を見やすくするためスレッドキーをタイムスタンプに変えて表示」
と説明してましたが、スレッドキー(unix timeの9-10桁の数字)も
タイムスタンプちゃうん?という気がして(タイムスタンプの定義は何?て話にも
なりそうで面倒なので)、
「5ch過去ログ倉庫を見やすくするためスレッドキーを年月日時分秒表記に変えて表示」
と、説明を変更することにしました。

スクリプトの処理内容は変更はないのでバージョンは変えてません。
スクリプト内のコメントは変更してます。

1080名無しさん:2023/06/14(水) 05:08:00
失礼します
5chの仕様が変更されたようなので正規表現をお願いできないでしょうか?
それとhttp://mukiyu.g.ribbon.to/が利用不能になっております

1081名無しさん:2023/06/14(水) 20:53:29
ブラウザでスレを表示して右上の設定ボタンから「クラシック」をクリックすると
read.cgiの後ろに「c」ディレクトリが付いてるURLに飛ぶので、このURLにアクセスするようにすれば見れそうですね。

C#版のhtmltodatByFiddler v3.04ベースですが、
OnBeforeRequest.cs.txt

oSession.url = v.g(1) + "/test/read.cgi/" + v.g(2) + "/" + v.g(3) + "/";
の行を
oSession.url = v.g(1) + "/test/read.cgi/c/" + v.g(2) + "/" + v.g(3) + "/";
って感じで「c」ディレクトリを追加してあげれば見れるようになりました。

1082 ◆/vmukiyuzw:2023/06/14(水) 22:38:15
>>1080さん

>>1011を元に修正しました。


コメント:
# 5chのread.cgi 08系からの出力を変換-2023/06/14
# 5chのcgi仕様変更(08.0d)に対応

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

1083 ◆/vmukiyuzw:2023/06/14(水) 23:20:50
自分が何をやっていたのか思い出すのに苦労しましたw

> >>1011を元に修正しました。

て言っても5年も前ですもんねw

> それとhttp://mukiyu.g.ribbon.to/が利用不能になっております

ribbonネットワーク(ribbon.to)自体つながりません;;
会社自体亡くなってしまったのかも…
この際なのでGitHubあたりへの移動を検討していたのですが
別件で忙しくなってしまい頓挫中です。

あと、書かないといけないを思っていたのですが、
昨年使っていたPCが故障してしまい使えなくなりました。
htmltodatのソースコードはバックアップしていたのですが
開発環境を復旧することができず、今後もうメンテナンスをする
ことはできません。
今更別環境で書き直すようなものでもないし、今後何かの事情で
使えなくなるような状況になっても多分対応できないと思います。
ご了承ください。

1084 ◆/vmukiyuzw:2023/06/14(水) 23:33:17
>>1081さん
情報ありがとうございます。
当面その方法でしのげそうですね。
htmltodatByFiddlerのスクリプトは手元では修正して動くようになったのですが
どうお知らせするかと考えてるところです。

1085 ◆/vmukiyuzw:2023/06/14(水) 23:42:43
プログラミングわかる人向けですが
read.cgi 何々用と並んでる最後 のelse の前に


}else if (oBody.ismatch(@"<div id=""thread""")){ //read.cgi 08用
// htmltodat変換メイン
oBody = oBody.htmltodat(@"<span class=""postid"">(\d+)</span><span class=""postusername""><b>(?:<a href=""mailto:(.*?)"">)?(.*?)(?:</a>)?</b></span></summary><span class=""date"">(.*?)</span></details><section class=""post-content"">(.*?)</section>");
// BE周りの処理
//be.bbspink.comが追加されていたので対応 v3.0
oBody = oBody.replace(@"</span><span class=""be .*?><a href="".*?//be\.(?:[25]ch\.net|bbspink\.com)/user/(\d+).*?>\?(.*?)</a>"," BE:$1-$2");
oBody = oBody.replace(@"<img src="".*?//(img\.[25]ch\.net/.+?)"">","sssp://$1");
//read.cgi 07.0.1 からIDの前に付くようになったタグを除去
oBody = oBody.replace(@"</span><span class=""uid"">"," ");

1086 ◆/vmukiyuzw:2023/06/15(木) 01:57:51
おっと、そのちょっと前に

//datが存在しないなどまっとうなレスポンスでない場合404を返して抜ける(ここはまだ要検討)
if (oBody.ismatch(@"<dl ")||oBody.ismatch(@"(<div|span) class=""number"">")){
}else{
oSession.responseCode = 404;
return;
}

てif文があるんですが、新しいread.cgiではこの条件を通らないので

if (oBody.ismatch(@"<dl ")||oBody.ismatch(@"(<div|span) class=""number"">")||oBody.ismatch(@"<div id=""thread""")){

にする必要があります。

1087名無しさん:2023/06/22(木) 22:22:44
>>1084
お世話になっております。
>>1081の方法だと、5chは見れるようになるのですが、
bbspinkのほうはまだ旧仕様なので、見れなくなってしまいます。。。

1088 ◆/vmukiyuzw:2023/06/23(金) 22:09:01
>>1087さん

htmltodaByFiddler をバージョンアップしました(Ver 3.05)

3.05(2023/06/23)
 ・5chの read.cgi の変更に対応

https://github.com/mikiyu71/htmltodat

今後のリリースはここ(GitHub)で行います。

変更内容は>>1085-1086で書いた内容を反映させたものです。
5chの read.cgi が ver 08 に上がってそれに合わせて枝分かれが
増えた形です。
修正したのは OnBeforeResponse.cs.txt のみです。
この変更を適用するなら、>>1081さんの変更は不要になります。

1089 ◆/vmukiyuzw:2023/06/23(金) 22:55:28
>>1088
ディレクトリ名 はhtmltodat としていますが、見てもらえれば分かりますが
中身は htmltodatByFiddler です。
せっかく GitHub にしたんだから過去の履歴も追えるようにすべきだった
かもしれませんが、面倒すぎるんでアップしたのは最新版のみです。
今後修正が必要になった場合は GitHub 上での履歴としていけると思います。

あと、htmltodat.exe に関しては、>>1083で書いた通り今後アップデートできる
見込みはないので、GitHub にはアップしません。新しくユーザーが増えることも
なさそうですし。
ただ、「ここの正規表現どうしたらいい?」みたいなお問い合わせは今後も
受け付けますのでよろしくお願いします。

1090 ◆/vmukiyuzw:2023/06/24(土) 03:14:03
というか、http://mukiyu.g.ribbon.to/ にアクセスできるようになってるみたい…
(ribbon.to 自体には自分とこからでは相変わらず繋がりませんが)

ここ数日 GitHub へ移すためにやった苦労は何だったんだ…
(いや勉強になったし今後も役立ちますが)

どうしますかね。http://mukiyu.g.ribbon.to/ から GutHub に飛ぶような
リンクを貼るようにするのがいいのかな。

1091名無しさん:2023/06/25(日) 12:05:16
>>1088
1087です。
Ver. 3.05に変更したところ、問題なく見れるようになりました。
ありがとうございます。

1092 ◆/vmukiyuzw:2023/10/11(水) 04:06:42
昨日ちょっと専ブラから5chにつながらないときがあって
chromeから見てたのですが、read.cgiのバージョン表記が

read.cgi ver 07.4.4 2023/10/10

となっていて、なんかバージョン番号が先祖返りした感じですね。
しばらくなくなってたエッチな広告もなんか復活してますし…
とはいえ、htmlの形式自体は >>1082 以降で対応してきた08系と
特に変わりはないようなので問題はなさそうですが。

1093 ◆/vmukiyuzw:2023/12/21(木) 05:43:46
>>1078
のスクリプトなのですが、最近5chの過去ログ倉庫が文字化けだらけで使い物にならん…

と思ってたら運用情報板に「過去ログ見たいならscを使え」みたいなスレが立ってて、
なるほどそういう手もあるかと思いスクリプトを改修してました。
でも 5ch.net と 2ch.sc では同じ板でもサーバ名が違う…
これはスクリプトレベルではどうしようもないので、運用上で回避することを
考えていました。

でも、ここ数日で文字化けは(全板かどうかわかりませんが)改善されたようなので
スクリプト改修の公開は保留にします。

1094名無しさん:2024/02/25(日) 12:58:16
htmltodatでしたらばの過去ログで2012年〜2013年は正規表現の項の「DAT2HTML0.26」で読み込めますが
2013後半〜以降の過去ログ・現行ログを取得する方法はありますか?

例としてここのURLで試しましたが正規表現が正しくないと表示されました
https://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038588508/

>>864氏のprmを試した見ましたがうまくいきませんでした

1095 ◆/vmukiyuzw:2024/02/28(水) 00:41:50
>>1094さん
したらば過去ログの話題は久々ですね、それこそ>>864さんの話題以来かな。
まず、したらばは過去ログと現行ログを分けて考えるする必要があると思います。

過去ログについては昔も今も正規表現「jbbs過去ログ」が使えると思います。例として
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1024130759/
>>864さんもテストに使われたこの板の過去ログ。2002年のもの)
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/
(したらばトップから適当に探した過去ログ。2023年のもの。ただしレス番飛びが
あるようで警告は出る)
20年を隔てても使えるようですw

現行ログについては以前>>622で考えたことがあるのですが、そのときとは
read.cgiが吐くhtmlの形式がかなり変わっており同じ手は使えないようです。
したらばにはrawmode.cgiという5chのdatと近い形式のデータを返す機能が
あるので、これを使う方向で考えてみました。。
(以前、https://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1038409548/124
で考えたことがあるのですが、レス番飛びを検出できないのであまりよい方法ではない)
いざやってみると思ったより面倒でしたが…^^;


コメント:
したらばの現行ログをrawmode.cgi経由で変換する

URLの変換:
s`read\.cgi`rawmode\.cgi`

前処理:
s`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)\\?\n`$1<>$2<>$3<>$4 ID:$7<>$5<>$6<>\n`img

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>$6<>

正規表現:
m`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)`ig

1096 ◆/vmukiyuzw:2024/02/28(水) 00:49:00
>>1095
と長々と書いときながらなんですが、正直言うと
したらばに対応してる専ブラ使う方が絶対楽だと思いますよ。
Xenoとかおすすめです。
上で書いたような、過去ログと現行ログの違いもユーザーが
意識せずとも勝手にやってくれますし。

「いやいや使い慣れたブラウザで見たいんじゃー」
てことかもしれませんが、それならしたらば対応専ブラから
dat持っていけばいいんじゃない?と思います。
ここで質問されてる以上、htmltodatで作ったdatを持って
いくのでしょうから、それを対応専ブラにやらせると考えれば
手間はそれほど変わらないのでは。

10971094:2024/02/28(水) 17:42:11
返信ありがとうございます
作成して頂いたprmでタイトルを取得できなかったものの現行ログのdat化が出来ましたありがとうございます

提示して頂いた過去ログでは「jbbs過去ログ」を試したところ
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/
ですが私の環境では正規表現が正しくないと表示され返還できませんでした
同様に以下でも試しましたが同じです。おま感でしょうか
https://jbbs.shitaraba.net/bbs/read_archive.cgi/internet/14562/1533538138/

Xenoでしたらばが読み込めるのは盲点でした要は使い分けですね

htmltodatは現状2ch時代の過去ログが閲覧できない状態でも
み○ずんやビュアデモといった所からdat化出来る為大変重宝しております

1098 ◆/vmukiyuzw:2024/02/29(木) 01:35:49
>>1097さん
> 作成して頂いたprmでタイトルを取得できなかったものの

すみません、タイトルを取得できないのは私のミスです。
prmファイル中の

変換結果式:
$2<>$3<>$4<>$5<>$6<>

これを

変換結果式:
$2<>$3<>$4<>$5<>$6

にしてください(最後の<>が余分だった)。


> 私の環境では正規表現が正しくないと表示され

これはわからないですね。
> 同様に以下でも試しましたが同じです。
とあげていただいたスレもこちらでは変換できましたし。
書かれてないですがこの板(私が例示した一つ目)は変換
できたのでしょうか?
「jbbs過去ログ」の正規表現の内容が違っているのかな?
「jbbs過去ログ」の正規表現は

m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik

なのですが、これを直接htmltodatの正規表現欄にコピペして
やってみてもダメですかね?
(これは>>864で書かれた正規表現と同じものなのですが
>>864さんはこれでうまくいったようです)

10991094:2024/02/29(木) 18:36:41
ありがとうございます
何度も御対応して頂き本当に申し訳ない

画像を含めて結果だけ報告します
前提としてソフトは再起動後の状態からそれぞれ試しています

テストその1
http://jbbs.shitaraba.net/bbs/read.cgi/computer/1929/1024130759/
【画像】https://i.imgur.com/Hc9EgZl.jpeg
上記スレでは正規表現一覧内の[jbbs過去ログ]で問題無くdat化する事が出来ました


ノルマンディーOC 【99】
https://jbbs.shitaraba.net/bbs/read_archive.cgi/sports/43156/1700655438/

上記スレでは[jbbs過去ログ]及び[jbbs過去ログ改]と

【m#<DT><A.*?>([0-9]+).+?(?:<A HREF="mailto:(.+?)">)?<B> ?(.*?) ?</B>(?:</A>|</FONT>)(?: 投稿日)?: ?(.*?)(?:<BR>)?<DD>(.*) ?<BR><BR>#mik】
を直接入力及び>864氏のprmも試した所をした所dat化は無理でした
htmlもそのまま出力されてしまっている様です
【画像】https://i.imgur.com/KQwdUVU.jpeg



現行ログの件ですが
【画像】https://i.imgur.com/Ep94tap.jpeg
「$2<>$3<>$4<>$5<>$6」にしてもスレタイを取得できなかった為

やはり私の環境に何かファイルの欠落があるのかもしれません

返信頂きありがとうございました

以下はテスト環境です
htmltodat Ver 0.11.12

エディション Windows 10 Home
バージョン 22H2
インストール日 ‎2021/‎05/‎17
OS ビルド 19045.3930
エクスペリエンス Windows Feature Experience Pack 1000.19053.1000.0

1100 ◆/vmukiyuzw:2024/03/01(金) 01:02:09
>>1099さん
なんとかわかった気がします。

まず過去ログに関してですが、
受信オプション - HTTPヘッダの追加 で

User-Agent: Monazilla/1.00

を指定してみてください。正規表現は「jbbs過去ログ」でいいです。
これで、お試しくださった「テストその1」も
「ノルマンディーOC 【99】」も変換できると思います。
私の環境でうまくいっていたのは、一旦このUAの指定をした後、リセット
しないままテストしていたためと思われます^^;

なぜそういうことになるのかはしたらば側の事情になるので推測に
過ぎないですが、
・(最初のご質問>>1094にあった)多分2013年頃に過去ログhtmlの形式が変更された
・が、User-AgentでMonazillaを名乗るもの
(したらば過去ログに対応していたと思われる専ブラ)
 からのリクエストには影響が出ないよう、元の形式のhtmlを返すようにされた
ということではないかと思います。


あと現行ログについてですが、htmltodatのプレビュー欄には
<タイトル無し>と出てしまうのですが、実際にはdat上には
スレタイはちゃんと出力されてるので、お使いの専ブラ
(何をお使いなのか参考に教えていただけるとありがたいです)
に持っていけばスレタイは認識してくれると思いますよ。
<タイトル無し>と出てしまうのは、通常のhtmltodat変換とちょっと違う
イレギュラーな手法を使ってるせいで、プレビュー欄のタイトルをうまく
取得できていないだけです。
「それ不具合ちゃうん?」と言われるかもしれないですがご容赦ください^^;

11011094:2024/03/01(金) 18:28:19
度々の対応ありがとうございます

助言通りに「User-Agent: Monazilla/1.00」を設定した所
無事にしたらばの過去ログのdat化に成功しました
https://i.imgur.com/yiK9My1.jpeg

本当にありがとうございます!

現行ログのタイトルもしっかり出力されていました
(dat化した後読み込んでちゃんと確認しておくべきでした申し訳ない)


使用していたのは「jane style」でした(dat出力機能が標準で付いていた為)
現在は「Xeno」を使おうと思って色々設定を弄ってる所です

本当にありがとうございました

私事ですが
現状5ch(2ch)界隈でゴタゴタしてて過去ログも見れない状態が続いてるので
この手の知識が無いなりにスレのdat化やサルベージを何とか進めている最中です

現在はonen2chのdat化を試みています
openは対応しているブラウザが多いので読み込めたりしますが
datが消滅しているスレ
https://wktk.open2ch.net/test/read.cgi/aimasu/1477275318/
https://wktk.open2ch.net/aimasu/dat/1477275318.dat
等は専ブラでは読み込めない為色々試している最中です

では長々と失礼いたしました

1102 ◆/vmukiyuzw:2024/03/05(火) 23:43:26
>>1094さんの丁寧なご報告のおかげ🙂でひと段落付いたようなので
現状を一旦prmの形にまとめておきます。これに対するレスは不要です。
まずしたらば過去ログ。


コメント:
したらばの過去ログを変換する
以前は正規表現=jbbs過去ログだけで行けたが
いつからかhtmlの形式が変わり、旧形式のhtmlを得るには
UAを指定する必要が出てきたようだ

HTTPヘッダの追加:
User-Agent: Monazilla/1.00

正規表現=jbbs過去ログ

1103 ◆/vmukiyuzw:2024/03/05(火) 23:46:54
次にしたらば現行ログ。
前に書いたものに若干のバグがあり少し修正してます。
まあ実験的なものであまり使われることはなさそうですが。


コメント:
したらばの現行ログをrawmode.cgi経由で変換する
・前処理
したらばのrawmode.cgiの出力は
レス番<>名前<>メール欄<>投稿日時(ID含まない)<>レス内容<>スレッドタイトル<>ID
なのでID($7)を投稿日時($4)の後ろに移す
・正規表現
各欄にそのまま当てているだけだが処理中に$1でレス番飛びのチェックをしているので必要

URLの変換:
s`read\.cgi`rawmode\.cgi`

前処理:
s`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)\\?\n`$1<>$2<>$3<>$4 ID:$7<>$5<>$6 <>\n`img
# IDがない板の場合削除
s` ID:<>`<>`img

透明あぼーんを補う:
true

変換結果式:
$2<>$3<>$4<>$5<>$6

正規表現:
m`(\d+)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)`ig

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


新着レスの表示


名前: E-mail(省略可)

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

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

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

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