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

htmltodatサポートスレッド

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

1043<削除>:<削除>
<削除>

1044 ◆/vmukiyuzw:2020/05/09(土) 17:39:34
>>1042さん
(いったんレスしたのですが勘違いがあったので修正します)

bbspinkの変換については >>964 だと思っていたのですが
過去のサーバについては古いread.cgiで動いているようですね。
該当スレの最後を見ると

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★

とあります。05.04.02というバージョンは初めて見ましたが、
05系ということで >>936 の奴を試したところ
特に問題なく変換できているように思います。
どのバージョンでどれを使うかは>>989参照。


# 本当ならこの「どの正規表現等を使うか」の判断は
# htmltodat側でやるべきなんでしょうね
# でも今の機能にそれを組み込むのはメッチャ難しそうなので
# 放置中です・・・

10451042:2020/05/10(日) 05:00:48
>>◆/vmukiyuzw様いつもありがとうございます。<(_ _)>
既出を聞いてしまいました・・・。すみません。
”間が飛んでいます”でしかスレ内検索してませんでした。

1046名無しさん:2021/09/30(木) 17:46:25
こんにちは。
スマホビュアデモ(試β5) というとこでスレ見つけ
ましたが、自分で正規表現書けません。
お暇な時にでも教えてやってください。

一覧(1〜13)
https://www.kyodemo.net/sdemo/b/ascii/?k=fakeapp&amp;kt=bk

スレ1
https://www.kyodemo.net/sdemo/r/ascii/1518391672/1-

1047 ◆/vmukiyuzw:2021/10/02(土) 22:49:44
>>1046さん
一から正規表現等書いたのはめっちゃ久しぶり(>>1000のとき以来かな?4年も前か)
なので、勘が鈍りまくってて手こずりました^^;

さて、例によっていくつか留意点があります。

・5ch自身のHTMLを変換した場合に比べ、datの精度はやや低いと思います。
 (不要な情報を取り除き切れていない)
 専ブラで見る分には多分あまり支障はないと思いますが。
 あと、例示いただいたスレでしか確認していないのでそのサイトの他の板等に
 適用できるかはわかりません。

・スレ中に「前スレ」とか「関連スレ」とかで5ch,bbspinkの他のスレへの
 リンクが書き込まれていた場合、そのサイト(スマホピュアデモ)内へのリンクに
 変換されてしまうようです。
 (https://www.kyodemo.net/sdemo/r/ascii/1518391672/1のレス内リンク等)
 これを元のURLに変換するのは困難なので、必要であれば手修正してください。

・色々試してみたのですが、そのサイトからスレの全レスを一度に取得する方法が
 見つかりませんでした。URLの最後に 1- と付けても50レスしか取得できません。
 1-1000とかしてもだめでした。となると、n51- とかして50レスずつ取得して結果を
 エディタで貼り合わせる必要があるかもしれません。

と、また前置きが長くなってしまったので正規表現等は次で。

1048 ◆/vmukiyuzw:2021/10/02(土) 22:53:08
>>1047 続き

コメント:
# スマホビュアデモ(試β5)を変換-20211002

前処理:
# 投稿日とIDが離れているのをつなげる
s`</span><a href=[^>]*?><span class="clid">([^<]*?</span>)` ID:$1`g

アンカー削除:
false

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

後処理:
s`</?div>``g

正規表現:
m`
<strong>([0-9]+).+? #レス番
<span\ class="clname">(.*?)</span> #名前欄
(?:\[<span\ class="clmail">(.*?)</span>\]\ ?)? #メール欄
<span\ class="cldate">(.*?)</span>.*? #投稿日
<div\ class="clmess"[^>]*?>(.*?)</article> #レス本文
`mikx

10491046:2021/10/03(日) 11:23:42
こんにちは。 ◆/vmukiyuzwさま
いつもいつもありがとうございます。<(_ _)>
(4年前のソイツも自分です。 ^^: )

レスくれてたの気づかず徹夜でキーボードマクロ使える
エディタで切り貼りしてました。(1スレも終わらず)

コレ面倒くさいだろなぁと思いながらもお願いした事も
あって、レスあったの見てウルっときちゃいました。

本当にありがとうございました。<(_ _)>

10501049:2021/10/03(日) 23:53:53
こんにちは。
不具合出ましたので報告いたします。
その12
https://www.kyodemo.net/sdemo/r/ascii/1580015540/n901-

942のワッチョイ(?)辺りでおかしくなり、943,944を巻き込み
1つのレスとなるようです。
htmltodatのレビュー窓では1つになりませんが、スレ番が
太文字に。

1051 ◆/vmukiyuzw:2021/10/04(月) 02:15:24
>>1050さん
とりあえず、ワッチョイのあるレスで不具合が出るのは修正出来たと思います。
ワッチョイの表示が必要なければその行を削除orコメントアウトしても
動くと思います。


コメント:
# スマホビュアデモ(試β5)を変換-20211004

前処理:
# 投稿日とIDが離れているのをつなげる
s`</span><a href=[^>]*?><span class="clid">([^<]*?</span>)` ID:$1`g
# ワッチョイ欄を名前欄とつなげる
s`</span>(\(ワッチョイ[^)]*?\))`$1</span>`g

アンカー削除:
false

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

後処理:
s`</?div>``g

正規表現:
m`
<strong>([0-9]+).+? #レス番
<span\ class="clname">(.*?)</span>.*? #名前欄
(?:\[<span\ class="clmail">(.*?)</span>\]\ ?)? #メール欄
<span\ class="cldate">(.*?)</span>.*? #投稿日
<div\ class="clmess"[^>]*?>(.*?)</article> #レス本文
`mikx

10521050:2021/10/04(月) 07:48:02
おはようございます。

Doeでもちゃんと表示されました。
いつも助かってます。
正規表現は理解できませんが、リンク表記を
弄れるようになりました。
ありがとうございました。<(_ _)>

10531052:2021/10/04(月) 12:33:22
こんにちは。
その3の535がトリップ?で読めませんでした。
他12スレはdat化できました。
https://www.kyodemo.net/sdemo/r/ascii/1540703439/n501-

時間のある時で構いませんので修正お願いします。

10541053:2021/10/04(月) 15:59:02
正しいかは不明ですが以下のようにしましたら変換はできました。
<span\ class="clname|clcap">(.*?)</span>.*? #名前欄
clcap|lname|clcapを先にするとエラーに。難しい。

1055 ◆/vmukiyuzw:2021/10/04(月) 17:22:50
>>1054さん
それエラーにはならないでしょうが変換結果めちゃくちゃになってません?
|(or表現)で文字列を並べるとき、カッコでくくらないといけません。
かつ、ただのカッコだとキャプチャされちゃう(あとで$1,$2`とかで参照される
対象になってしまう)のでそれを避ける表現が必要です。
とりあえず以下のようにしてください。

<span\ class="(?:clname|clcap)">(.*?)</span>.*? #名前欄

1056 ◆/vmukiyuzw:2021/10/04(月) 20:33:43
あと、この例のようなキャップユーザー?のレスって、dat上でも名前欄にfontタグが
ついていて、専ブラで表示しても色が変わるようになってるんですよね。
一応それに準拠するなら、前処理に以下を追加してください。
(気にならないのであればやらなくてもいいと思います。また、色はそのサイトでの
表示に合わせただけで、元のbbspinkのスレでの色とは違うかもしれません)

# キャップユーザーの名前の色を変える
s`(<span class="clcap">)(.*?)(</span>)`$1<font color=#ff8c00>$2</font>$3`g

1057<font color= ◆yCIuSJMu.o:2021/10/04(月) 21:21:11
◆/vmukiyuzwさん、何度もありがとうございます。
訂正 clcap|lname とclcapを先にするとエラーに。難しい。

>>1054の"clname|clcap"を試した時は535だけ読んで変換させ
ましたのでOKだったみたいです。
実際はclnameをclcapに変更して変換させたものを使いました。

JaneDoe View α ( build date: 1507130036 )ではトリップの
色は緑色から変化せずでしたが、JaneStyleではオレンジに
なりました。
本当に助かりました。ありがとうございました。<(_ _)>

1058名無しさん:2021/10/05(火) 09:14:56
ボード一覧取得URLをhttp://menu.2ch.net/bbsmenu.html
変更してカキコ。

10591057:2021/10/07(木) 16:50:03
こんにちは。お世話になっております。
https://www.kyodemo.net/sdemo/r/ascii/1514602063/n851-
ここの897が変換されません。
スレ番が処理されないようで
<strong><a href="897?na" class="button l-button" rel="nofollow">897</a></strong>:
ガンバッテみたのですがこれで良いでしょうか?
前処理の最初でやってみましたが・・・。

前処理:
#897error
s`<strong><a href="[^>]*?([0-9]+).+?</a>`<strong>$1`g

よろしくお願いします。<(_ _)>

1060 ◆/vmukiyuzw:2021/10/08(金) 00:00:33
>>1059さん
対応としては

> 前処理:
> #897error
> s`<strong><a href="[^>]*?([0-9]+).+?</a>`<strong>$1`g

このやり方で問題ないと思います。


ただ、その897番目のレスには、変換が出来てもレス本文として表示できる要素が
何もないですね。変換元のhtmlソースを見ると

https://www.kyodemo.net/sdemo/a/ascii/1514602063/897.gif

に対する<a href〜 タグはあるのですがそれに対応する本文がないので
専ブラでは何も表示できないと思います。
これはhtmltodatとしてはどう対処すべきか全然わからないです。
(bbspinkでの元のレスがどういうものだったのかわからないしそのサイトで
どういう変換ルールでそういうことになったのかもわからない、調べるには相当
大変そう)
なので、とりあえず上のリンクをdatのスレ本文中に貼るので勘弁してもらえませんか?w
私が見る限り多分大した内容ではないのでこのレスで見てもらうだけでも
いいかもしれませんw

1061名無しさん:2021/10/08(金) 00:52:29
おお、これで良かったのか。
◆/vmukiyuzwさん、お忙しいところ時間割いて
下さりありがとうございます。<(_ _)>

元はその画像のAAみたいです。
https://ikioi5ch.net/cache/view/ascii/1514602063/897
(話の広げようが無い・・・w)
ありがとうございました。

1062 ◆/vmukiyuzw:2021/10/08(金) 03:19:10
んんん?そこのサイト(ikioi5ch.net)だと50レス毎区切って
切り貼りしなくても1000レスいっぺんに読めますね?
www.kyodemo.net から取得するより楽なのでは??と思ったら
ID欄がちゃんと取れてないのか。なんか残念な感じですね。

(まあそれ言ったら現5chのread.cgiも、ID周りの昔から積み重ねた
ごちゃごちゃを整理し切れてなくて投げだしてる感じですけどね。
これはhtmltodatにももちろん影響あるんで一言言わずにはいられないw)

1063名無しさん:2021/10/08(金) 06:48:13
おはようございます。

はい。区切らずいっぺんで読めるのですが
ID消えてたんでkyodemoでお願いしました。
性分ですね。w;

1064名無しさん:2022/04/21(木) 15:17:02
こんにちは。
上記https://ikioi5ch.netのソースを元に自分で書いてみましたがうまくいかず…

<div class="post" id="15" data-date="NG" data-userid="ID:LxZOZESx0" data-id="15">
<div class="meta">
<span class="number">15</span>

<span class="name"><b>以下、名無しにかわりましてVIPがお送りします</b></span>
<span class="date">2005/07/28(木) 12:21:41</span>
<span class="uid">ID:LxZOZESx0</span>

</div>
<div class="message">
<span class="escaped">
とりあえずアンカープリーズ </span>


</div>
</div>

メール欄リンクは全てオフの様でしたので
m#<span\ class="number">([0-9]+).+?<span\ class="name"><b>(.*?)</b></span>.*?<span\ class="date">)(.*?)</span>.*?<span\ class="uid">(.*?)</span>.*?<span\ class="escaped">(.*?)</span>#mik
見よう見まねで書いてみましたがやっぱり動きません。
どこが間違っているのかもわからずじまい…

時間のある時で大丈夫ですので、よかったらご教授願えませんか?
よろしくおねがいします。

1065名無しさん:2022/04/23(土) 23:54:47
>>1064さん
お書きになった正規表現をそのまま試してみると

unmatched close parenthesis

というエラーメッセージが出ます。これは正規表現の文法エラーで
「括弧の対応が正しく取れてないよ」と言われてます。

<span\ class="date">) ←この部分の括弧が余分みたいです。

この括弧を消したところ、一応変換はできましたが、名前欄・メール欄・
投稿日欄とかおかしいです。これは、この正規表現では各欄の位置を
正しく認識できてないという事になります。

htmltodatのreadme.txtには、

$1:レス番号
$2:メール欄
$3:名前・トリップ
$4:投稿日・ID
$5:レス内容

となるように正規表現を設定する、とあります。この$1,$2,…というのは
正規表現中に現れる括弧で囲まれたグループ( ([0-9]+) とか (.*?) とかですね)
に順に番号が振られるものになります。
(この辺はreadmeでは説明不足ですね、申し訳ない。あと、なぜそれに合わせないと
いけないのかは私が勝手に決めた仕様だからとしか言いようがないです。まあ当時の
2chのread.cgiの形式になるべく近づけた形なのですが)

で、お書きになった正規表現をみると

$1:レス番号
$2:名前欄
$3:投稿日
$4:ID
$5:レス内容

となってるのをお分かりいただけるでしょうか。
なので、改善すべき点は2つあって
・メール欄に当たるグループを作る
・投稿日とIDのグループを一つにまとめる
という事になるかと思います。
一つ目は割と簡単で、名前欄よりも前に適当に () を入れればいいです。
(グループは順番さえ合っていれば中身は空でも構わない)
二つ目ですが、この https://ikioi5ch.net のhtmlがちゃんとID欄を拾って
くれていれば他に考えようがあったのですが(前処理または後処理で投稿日欄と
ID欄を強引にくっつける等)、意味のないID欄は無視するのがスッキリしていい
のではないかと思います。

<span\ class="uid">(.*?)</span>.*?

の部分をまるっと削除します。
で、その辺を修正した結果は以下です。

m#<span\ class="number">([0-9]+).+?()<span\ class="name"><b>(.*?)</b></span>.*?<span\ class="date">(.*?)</span>.*?<span\ class="escaped">(.*?)</span>#mik


まだ考慮事項があるのですが長くなってきたので次で。

1066名無しさん:2022/04/24(日) 01:26:32
前レスで書いた正規表現ですが、「うふ〜ん」のレスには対応できてません。
( <span\ class="name"> や <span\ class="date"> などの要素がそもそもないため
マッチしない)、
変換後に変換警告で「レスxxx-xxxの間が飛んでいます」のメッセージが出ると思います。

で考えたのですが、前レスで書いた「グループ化(括弧でくくる)」は後ろに ? をつけて
(xxx)? のようにするとそのグループがあってもなくてもよい(正しい用語では0回または
1回マッチする)ようにできるので、名前にマッチする部分と投稿日にマッチする部分を
グループ化して後ろに ? をつけてみました。
括弧をつけてグループ化すると $1,$2…とカウントされる対象になってしまうのですが
括弧の最初を (?: としておくとカウントされないです。
(カウントとか自分用語使ってますが正式には捕獲とかキャプチャとかいうみたい)

で、その部分含め書き直したのが以下。

m#<span\ class="number">([0-9]+).+?()(?:<span\ class="name"><b>(.*?)</b></span>.*?)?(?:<span\ class="date">(.*?)</span>.*?)?<span\ class="escaped">(.*?)</span>#mik


ついでに拡張表現で書くとこんな感じ

m`
<span\ class="number">([0-9]+).+? #レス番
() #メール欄(ダミー)
(?:<span\ class="name"><b>(.*?)</b></span>.*?)? #名前欄
(?:<span\ class="date">(.*?)</span>.*?)? #投稿日
<span\ class="escaped">(.*?)</span> #レス本文
`mikx


…と書いてきたけど>>1064のレス見るとID取れるスレもあるって事なの?
(前はID取れないから別のサイトって話だったのに)
そういうときは具体的なスレのURL書いて欲しかったな…

1067名無しさん:2022/04/24(日) 13:14:14
>>1065-1066
お忙しい中お返事ありがとうございます!
まさかお返事いただけるとは思ってませんでした!

私が今収集しているログは全てIDまで取っているようです。

参考URL
https://ikioi5ch.net/cache/view/news4vip/1136490878

スレのラストが999になっていたり、途中からアンカーが1つズレたりしているので
「うふ〜ん」「あぼーん」等は無かった事にされ、レス番がその分繰りあげられてる…?
初めからURL出しておくべきでした。
申し訳ないです。

やっと理解できてきました。
()の登場順に変数が($1-$5まで)割り当てられるって意味ですね。

序盤にCSSのガラガラが山ほど出てきてエラーが出ますので

s#<style(.|\s)*?</style>##igk

これを前処理に追加した所無事に変換できました!

IDですが、

<span class="number">186</span>

<span class="name"><b>以下、名無しにかわりましてVIPがお送りします</b></span>
<span class="date">2006/01/06(金) 07:08:07</span>
<span class="uid">ID://9DNy9k0</span>

これを前処理で「</span><span class="uid">」を「 (半角スペース)」に置き換え、
実行しようと今朝から今まで試行錯誤しました。

前処理
s#<style(.|\s)*?</style>##igk
s#</span>(\n|\s)+?<span class="uid"># #igk

結果これでうまくいったのでご報告させて頂きます。(色々間違えてると思うのですが)
本当に助かりました!!ありがとうございました!

1068名無しさん:2022/06/23(木) 16:00:53
いつも使わせていただいております。
vipのスレをhtmltodatで変換すると、5chから取得したdatにある書き込み時間とIDの間のスペースが消えてしまいます。
今は手動でスペースを追加していますが、よろしければご対応して頂ければ幸いです。

1069 ◆/vmukiyuzw:2022/06/24(金) 01:59:40
>>1068さん
まず、うまくいかないスレのURLを書いてほしかったです。
「vipのスレ」と言われても、現役スレをhtmltodatを使う必要は
ないでしょうから何らかの形の過去スレであると思われます。
ならこちらで確認する(スレを探す)のは面倒なのはご理解いただけますでしょうか。
現役スレと過去スレが同じcgiで吐かれてるって保証もないので。

でもとりあえず、ニュー速VIP
https://mi.5ch.net/news4vip/ のことでいいんですよね?)
で、いくつかのスレで
>>1011の正規表現等で試してみましたが、書き込み日時とIDの間のスペースが
消える事象はこちらでは確認できませんでした。

1070名無しさん:2022/06/24(金) 13:20:23
>>1069
お返事ありがとうございます!
おっしゃる通りmi鯖の過去スレです。言葉が足らず申し訳ございませんでした。
試して頂きありがとうございます。
事象は確認出来なかったとのことで、私の使ってる変換オプションを>>1011の正規表現等と照らし合わせてみた所、
「透明あぼーんを補う」にチェックが入っておらず、チェックを入れた所、スペースが消える事象は解消されました。

お手数おかけして申し訳ございませんでした。ありがとうございました!

1071名無しさん:2022/09/13(火) 22:47:05
URLコピペしてスレ取得しようとしたら
Socket Error # 10054
Connection reset by peer.
なるエラーが出て取得失敗するようになりました
ネットブラウザからhtmlファイルとして保存はできるので
ローカルに落としたそれをhtmltodatに食わせて凌いでるけど面倒くさいです

これってソフトの設定方でどうにかなるものでしょうか

1072名無しさん:2022/09/13(火) 23:57:49
>>1071さん
こういうお問い合わせには、該当のURLを書いていただかないと
こちらで調べようがないと何度も書いてるのですが、このスレも
いつの間にか20年にもわたりますし1000レスを大幅に超えてますし
仕方ないですかね…

個人的経験でしかないですが
> Socket Error # 10054
> Connection reset by peer.
こういうエラーはたいてい相手サーバーが死んでる時ですかね。
もしくはプロキシ経由で接続しててそのプロキシ死んでるとか。
ローカルプロキシを使う設定にしておきながらローカルプロキシを
起動し忘れてる、なんてのは私はしょっちゅうやります。

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系と
特に変わりはないようなので問題はなさそうですが。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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