(11751)
11751:
サイト更新 新着情報 V0.955
投稿者:
konno
2024/12/18(水) 22:47
コメント数 4
新着情報 V0.955 更新しました。
今までのツリーは長くなりすぎたのでここから新規にします。
・タイトル行引用で表示が乱れるバグ修正
> #11729:Re^8: 「新着情報 携帯版」と掲示板の連携 投稿者:konno 2024/12/10(火)
> 正確には新着のタイトル行丸ごと引用するとそれをタイトル行と誤認識してしまうというものです。
> > コードを貼り付けていただければ回避法を議論できるかもしれない、ということです。
今まではこのようにタイトル行を引用すると表示がバグっていたのを修正しました。
修正コードは
if (($_ =~ /\投\稿\者\:/)){
↓
if (($_ =~ /^\投\稿\者\:/)){
これだけです。(^^;
「投稿者:」という文字列が行頭にある時だけ処理する、と変更して直りました。(^^;
今まで頭が全然回ってなかったようです。(^^;
・DOSVAXJ3の更新日付を表示
今まで不便に思っていたので思い切ってやってみたら、サイトの読み込みに失敗するようです。
この手のツールからのアクセスを制限しているのかもしれません。
しかたがないので、ブラウザの検索をURLにしたら(おい)アクセスできました。(^^;
表示しないこともあるかと思いますがそういうことなのでご容赦願います。m(__)m
・リンクの並びを変更
VTDOS BBS の更新が無いので、リンクの並びを個人的優先順位で変更しました。
私のノートPCだと表示がギリギリなので。(^^;
- No.11751 -
このTreeへ
[リストへもどる]
pre
(11751)
11754:
Re: サイト更新 新着情報 V0.955
投稿者:
としき
2024/12/19(木) 00:28
参照先:http://toshiki.la.coocan.jp/
11751 番 konno さんへのコメント コメント数 1
> ・タイトル行引用で表示が乱れるバグ修正
これはありがたいですね。
> ・DOSVAXJ3の更新日付を表示
> 今まで不便に思っていたので思い切ってやってみたら、サイトの読み込みに失敗する
ん〜、うちの板塀は直接読めないわけですが、それと似たような状況でしょうか。
あそこのサイトの読み込みだけの単機能のスクリプトでもNGということですよね。
具体的にどういうコードでどういう出力になった、ということを示していただければ
もしかしたらアドバイスできることもあるかもしれません。
> しかたがないので、ブラウザの検索をURLにしたら(おい)アクセスできました。(^^;
???
これはよくわからない。
CGIスクリプトで取得しているのですよね?
ブラウザで取得?
ブラウザということは、Javascriptを使っているということでしょうか。
> ・リンクの並びを変更
> 私のノートPCだと表示がギリギリなので。(^^;
新しい並びで、私は全く問題ありません。
が、例えば、縦ではなく横に並べてみる、ということはできませんか?
- No.11754 -
このTreeへ
コメント元:11751 へ
[リストへもどる]
soft
(11751)
11758:
Re^2: サイト更新 新着情報 V0.955
投稿者:
konno
2024/12/19(木) 01:59
11754 番 としき さんへのコメント コメント数 1
- No.11758 -
このTreeへ
コメント元:11754 へ
[リストへもどる]
pre
(11751)
11762:
Re^3: サイト更新 新着情報 V0.955
投稿者:
としき
2024/12/20(金) 00:42
参照先:http://toshiki.la.coocan.jp/
11758 番 konno さんへのコメント コメント数 1
何をやっているのか、理解できたといっていいのか、誤解にとどまっているのか。
つまり、軟式さんのサイトを直接読もうとしたらエラーになった、ということです
よね。ただ、これ、日付の取り出しのためだけにアクセスしているということで
よろしいのでしょうか。であるなら、この方法はあまりいただけないかも。
なぜなら、検索結果に日付が表示されるかどうか、というのは検索サイトに依存
するからです。有名どころではGoogle、こいつは結果表示画面が変わるかどうかは
ともかく、内部のアルゴリズムは1日に何回も変化するとのこと。bingもGoogleほど
ではないにしろ、検索結果の表示形式は年に何回も変わっているらしいので、あまり
あてにしてはいけないと思う。
で、まぁ、素直にサイトのデータを取得しようとしてうまくいってないのだから、
以下の私の提案もうまく行かない可能性は高いのだけど、一つ提案。
軟式さんのサイト、RSSを提供しています。
なので、もしRSSを取得できたなら、ですが、こちらを取得したほうが、そのあとの
加工は絶対に楽だと思う。
それに、そうすれば#11756で言及されている
> ブラウザの検索データは大きすぎて表示が間に合わないっぽいです。
この問題は発生しないはず。
なお、
> このエラーが表示するので失敗したとわかりましたが、詳細はわかりません。
これについてですが、#11754で私が尋ねたように、軟式さんのサイトだけを読み込む
スクリプトでも同じ状況になる、ということですよね。
まずは試しに、軟式さんのサイトのRSSだけを読み込むスクリプトでも同様事象に
なるか試していただけませんでしょうか。
もし再現するということなら、そのスクリプトを送っていただければ、私のほうでも
検証してみたいと思います。
余談ですが、なぜ私が混乱したか、やっと原因がわかった。
> このようにブラウザの検索で「DOSVAXJ3」を検索して、その時のURLを貼り付けました。
この文面を何回か読み直して理解できました。
最初、私が混乱した原因は
> しかたがないので、ブラウザの検索をURLにしたら(おい)アクセスできました。
この文面だったのですが、これが仮に
> しかたがないので、ブラウザの検索結果のURLでデータを取得したら
となっていたら一発でわかった。
つまり、おつむが固いというか応用力に欠けているというか。
要は、単に私に読解力が欠けていた、というだけのことでした。
- No.11762 -
このTreeへ
コメント元:11758 へ
[リストへもどる]
soft
(11751)
11767:
Re^4: サイト更新 新着情報 V0.955
投稿者:
konno
2024/12/20(金) 20:08
11762 番 としき さんへのコメント コメント数 1
> なぜなら、検索結果に日付が表示されるかどうか、というのは検索サイトに依存
> するからです。有名どころではGoogle、こいつは結果表示画面が変わるかどうかは
> ともかく、内部のアルゴリズムは1日に何回も変化するとのこと。bingもGoogleほど
> ではないにしろ、検索結果の表示形式は年に何回も変わっているらしいので、あまり
> あてにしてはいけないと思う。
グーグルもヤフーも目的の日付データは表示してくれないみたいです。
なので今は bingで仮対応してみたんですが、やっぱり表示出来ない場合がありますね。
> 軟式さんのサイト、RSSを提供しています。
> なので、もしRSSを取得できたなら、ですが、こちらを取得したほうが、そのあとの
> 加工は絶対に楽だと思う。
えっ、そうなのですか。見つけられませんでした。
> これについてですが、#11754で私が尋ねたように、軟式さんのサイトだけを読み込む
> スクリプトでも同じ状況になる、ということですよね。
これはわからないです。
> > このようにブラウザの検索で「DOSVAXJ3」を検索して、その時のURLを貼り付けました。
これは「軟式サイトのURLを検索」の間違いでした。すみません。
> > しかたがないので、ブラウザの検索をURLにしたら(おい)アクセスできました。
> この文面だったのですが、これが仮に
> > しかたがないので、ブラウザの検索結果のURLでデータを取得したら
> となっていたら一発でわかった。
私の書き方が悪くて混乱させてしまい申し訳ないです。
- No.11767 -
このTreeへ
コメント元:11762 へ
[リストへもどる]
soft
(11751)
11773:
Re^5: サイト更新 新着情報 V0.955
投稿者:
としき
2024/12/20(金) 23:22
参照先:http://toshiki.la.coocan.jp/
11767 番 konno さんへのコメント コメント数 1
> > 軟式さんのサイト、RSSを提供しています。
> えっ、そうなのですか。見つけられませんでした。
各サイトとも、あまり最近は表に出していませんからね。
私が気がついたのは、WinXPに入っていたFirefoxの古い版でアクセスしたときに、
メニューのブックマークの中にあった「このページを購読」のボタンがアクティブ
になっていたからです。
軟式さんのサイトのトップページのソースを開くと、冒頭に「title='RSS'」って
ありますので、そのリンクを使ってみてください。
そして、そのリンクだけを読み込もうとして、つまり、他のサイトを読まない、素の
シンプルなテスト用のスクリプトを作って、それで
> > これについてですが、#11754で私が尋ねたように、軟式さんのサイトだけを読み込む
> > スクリプトでも同じ状況になる、ということですよね。
この状況が起こるようであれば、私にもそのテスト用スクリプトを送ってほしい、
ということでした。
- No.11773 -
このTreeへ
コメント元:11767 へ
[リストへもどる]
soft
(11751)
11776:
テスト用スクリプト
投稿者:
konno
2024/12/22(日) 15:23
11773 番 としき さんへのコメント コメント数 1
> 私が気がついたのは、WinXPに入っていたFirefoxの古い版でアクセスしたときに、
> メニューのブックマークの中にあった「このページを購読」のボタンがアクティブ
> になっていたからです。
これを見て UA偽装有り無しもやってみましたが変わらないようです。
my $ua = 'Mozilla/5.0 (compatible; MSIE 9.0; Trident/5.0)';
# my $ua = 'Mozilla/4.0 (compatible; MSIE 7.0;)';
# my $ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0';
> 軟式さんのサイトのトップページのソースを開くと、冒頭に「title='RSS'」って
> ありますので、そのリンクを使ってみてください。
これは気が付いていましたがそのリンクに変えても変わらないようです。
# my $url9 = 'https://www.nanshiki.co.jp/nanshiki.xml';
my $url9 = 'https://www.nanshiki.co.jp/index.html';
> そして、そのリンクだけを読み込もうとして、つまり、他のサイトを読まない、素の
> シンプルなテスト用のスクリプトを作って、それで
> > > これについてですが、#11754で私が尋ねたように、軟式さんのサイトだけを読み込む
> > > スクリプトでも同じ状況になる、ということですよね。
これもやってみましたが変わらず読めないようです。
ちなみに、「PerlでLWP::UserAgentを使った10のプログラミングテクニック」
https://jp-seemore.com/sys/20283/
と言うサイトに色々サンプルが載っていて、そのなかのサンプル
-----------------------------------------------------------
> 下記のサンプルコードでは、HTTPSリクエストを安全に送信する方法を表しています。
use LWP::UserAgent;
use IO::Socket::SSL;
my $ua = LWP::UserAgent->new(
ssl_opts => {
SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_PEER,
verify_hostname => 1
}
);
my $response = $ua->get('https://www.secure-example.com');
if ($response->is_success) {
print "Secure Response: " . $response->decoded_content;
} else {
die "SSL error: " . $response->status_line;
}
-----------------------------------------------------------
これも試してみましたがやはり読めませんでした。
他の HTTPS のサイトは読めましたがそれは元々読めていたので。
> この状況が起こるようであれば、私にもそのテスト用スクリプトを送ってほしい、
> ということでした。
色々ゴチャゴチャしてますが、メールで送りました。
- No.11776 -
このTreeへ
コメント元:11773 へ
[リストへもどる]
pre
(11751)
11777:
Re: テスト用スクリプト
投稿者:
としき
2024/12/22(日) 19:24
参照先:http://toshiki.la.coocan.jp/
11776 番 konno さんへのコメント コメント数 1
> 色々ゴチャゴチャしてますが、メールで送りました。
いただきました。
ゴチャゴチャしているのもそうですが、送られてきたスクリプト、いろいろと悪い
意味で予想が外れていました。
#11773
> そして、そのリンクだけを読み込もうとして、つまり、他のサイトを読まない、素の
> シンプルなテスト用のスクリプトを作って、それで
> > これについてですが、#11754で私が尋ねたように、軟式さんのサイトだけを読み込む
> > スクリプトでも同じ状況になる、ということですよね。"
> この状況が起こるようであれば、私にもそのテスト用スクリプトを送ってほしい、
と書いたので、当然、該当URLを読み込む部分だけのスクリプトで試験していて、その
スクリプトを送ってくると思っていたのですよ。が、いろいろな出力部分が残って
いて、それがわりと迷彩状態。もうね、この段階で私の期待はずれ。
テストはできるだけシンプルなコードで、ということは心がけてほしい。
で、まずは手始めに、送っていただいたコードの中の取得するURLを指定している
だけを、うまく取得できるはずのbing経由に書き換えてlacoocanの私のスペースに
アップロードしてアクセスするも、あえなくlacoocanからの
> Internal Server Error
> 実行エラー
> CGIの実行時にエラーが発生しました。
の表示。う〜ん、一体何が悪いのかわからん。
もしかしたら、いらなさそうなところを全部削ればきちんと動くのかもしれません
が、そんなこともやってられない。結局、自前で試験用スクリプトを作ってしまい
ました。以下のような感じ。
#!/usr/local/bin/perl
use LWP::UserAgent;
my $ua = 'Mozilla/5.0 (compatible; MSIE 9.0; Trident/5.0)';
my $timeout = '230';
my $lwp = LWP::UserAgent->new( agent => $ua, timeout => $timeout );
my @new = ();
my @list = ();
my $outline = '';
print "Content-type: text/html\n\n";
print "<html><head><title>dummy</title></head><body>\n";
## コンテンツの取得
my $url1 = 'https://www.nanshiki.co.jp/nanshiki.xml';
# my $url1 = 'http://27-138-85-108.rev.home.ne.jp';
my $res1 = $lwp->get( $url1 );
## ダウンロード成功時
if ( $res1->is_success ) {
print "success";
## ダウンロード失敗時
} else {
print "error\n";
}
print "</body></html>\n";
__END__
これだけのコードで、うまくデータが取得できないことは確認。
ということで、ここから調査開始。
まず軟式さんのサイトの素性調査。すると、bit-driveというソニー系のサービスを
利用していることが判明。が、このサービスが特殊、というのは引っかかってこない。
次に、LWPでうまくアクセスできない、という状況を調査。
すると、20年近く前のQ&Aで、Wikipediaにうまくアクセスできないという状況が
あったらしい。このときは、LWPのデフォルトのユーザーエージェントがlibwww-perl
となっていて、そのUAでのアクセスをWikipediaが蹴っ飛ばしているから、とのこと。
でも、今回はスクリプトでUAを変更しているから関係ないよなぁ、と思いつつ、
FirefoxのアドオンでUAを偽装してlibwww-perlを偽ってみたり、UAなしにして
みたりして軟式さんのところにアクセスすると、普通にアクセスできるので、おそらく
UAは関係なさそう。
ただ、これに着想を得て。
LWPがアクセスするときの、HTTPのプロトコルレベルで何か余計なものがくっついて
いる可能性があるのではないかと思い、自宅で80番ポートにダミーのサーバを立てて
プロトコルレベルでのやり取りを観察しようと思いました。使ったソフトは「鯖男」
というものです。ベクターにあります。
結果、「インデックスがリストの範囲を超えている」みたいなエラーメッセージを
「鯖男」が吐いてきて。つまり、「鯖男」が想定していないようなデータをニフティ
のLWPは送りつけている模様。
ここまでの調査でわかったことはこれだけ。
今後の調査の方向。
LWP::UserAgent ではなく LWP::Simple にある getprint というのを使うと、少し
詳しいステータスが取れるらしい。これでエラーコードか何かがわかれば、さらに
先に進む手がかりが得られるかも。
もちろん、LWP::UserAgent ですら、私は全てを把握できているわけではないので、
その中で何か有用なものがあれば使ってみたい。
途中経過でした。
- No.11777 -
このTreeへ
コメント元:11776 へ
[リストへもどる]
pre
(11751)
11778:
Re^2: テスト用スクリプト
投稿者:
konno
2024/12/24(火) 23:54
11777 番 としき さんへのコメント
> いただきました。
> ゴチャゴチャしているのもそうですが、送られてきたスクリプト、いろいろと悪い
> 意味で予想が外れていました。
> テストはできるだけシンプルなコードで、ということは心がけてほしい。
すみません。できるだけ心がけます。m(__)m
> もしかしたら、いらなさそうなところを全部削ればきちんと動くのかもしれません
> が、そんなこともやってられない。結局、自前で試験用スクリプトを作ってしまい
> ました。以下のような感じ。
> これだけのコードで、うまくデータが取得できないことは確認。
やはりアクセスできないようですね。
> FirefoxのアドオンでUAを偽装してlibwww-perlを偽ってみたり、UAなしにして
> みたりして軟式さんのところにアクセスすると、普通にアクセスできるので、おそらく
> UAは関係なさそう。
これはブラウザからのアクセスは出来ているということですよね。
> 結果、「インデックスがリストの範囲を超えている」みたいなエラーメッセージを
> 「鯖男」が吐いてきて。つまり、「鯖男」が想定していないようなデータをニフティ
> のLWPは送りつけている模様。
うーむ、これだけでは原因まではわからないですね。
> LWP::UserAgent ではなく LWP::Simple にある getprint というのを使うと、少し
> 詳しいステータスが取れるらしい。これでエラーコードか何かがわかれば、さらに
> 先に進む手がかりが得られるかも。
宜しくお願い致します。
私はとしきさんにいただいたコードをそのまま使っているだけで何もわかってないので。
とはいえ何もしないのもなんなのでVectorとかで色々見てみました。
ブラウザを利用したアプリがアクセス成功しているようなのです。
やはりブラウザ以外を制限しているのではないかと思いました。
それでその線で試行錯誤しているのですがなかなか進まず難しいです。
- No.11778 -
このTreeへ
コメント元:11777 へ
[リストへもどる]
soft
(11751)
11756:
Re: サイト更新 新着情報 V0.956
投稿者:
konno
2024/12/19(木) 01:39
11751 番 konno さんへのコメント
- No.11756 -
このTreeへ
コメント元:11751 へ
[リストへもどる]
pre
(11751)
11759:
Re^18: 過去ログ日付取得のラフスケッチ
投稿者:
konno
2024/12/19(木) 21:42
11751 番 konno さんへのコメント コメント数 1
> #11752: Re^17: 「新着情報 携帯版」と掲示板の連携 投稿者:としき 2024/12/19(木)
へのコメントです。新しいスレに移動しました。
> データの変更が発生するタイミングとしては、過去ログの更新が走るときのみ。
> なので、wf_regi.cgi の中の pastlog のルーチンをフック。
> その末尾あたりで、全過去ログをなめて、必要な日付を取得。
過去ログの内容が変わるのは直近のみですよね。ならば直近のログの処理だけでいいはず。
> もし私が作るなら、個人的な趣味で、一番古い日付と新しい日付を取得して、何日
> から何日まで、みたいな表示にすると思う。
うーむ、なるほど。試しにやってみようかしら。もちろん手動で。(^^;
> そして、過去ログ番号と日付をHTMLに構築して別途テキストファイルに書き出し。
> wforum.cgiでは、そのテキストファイルをインクルードして表示するだけ。
うう、面倒くさそう。もしも出来てしまったらテストはやぶさかではないですが。(^^;
- No.11759 -
このTreeへ
コメント元:11751 へ
[リストへもどる]
soft
(11751)
11763:
Re^19: 過去ログ日付取得のラフスケッチ
投稿者:
としき
2024/12/20(金) 00:48
参照先:http://toshiki.la.coocan.jp/
11759 番 konno さんへのコメント コメント数 1
> 過去ログの内容が変わるのは直近のみですよね。
普通ならそうですけど。
管理者権限で、過去に遡って介入とかあるかしら、ということを妄想してみました。
> うう、面倒くさそう。もしも出来てしまったらテストはやぶさかではないですが。(^^;
がんばって作ってみてください。
とりあえず、要素技術を一つ一つ試験してみるのがいいかな。
とっかかりは、別途作成済みのhtmlファイルの断片を、望んだところにインクルード
できるか否か、というところ辺りから試してみましょう。
もし手動でやるにしても、そのファイルをメンテナンスするだけで、以後は好きな
ように表示を変えることも可能になるわけですから、少しは楽になるのではないかな。
- No.11763 -
このTreeへ
コメント元:11759 へ
[リストへもどる]
soft
(11751)
11768:
Re^20: 過去ログ日付取得のラフスケッチ
投稿者:
konno
2024/12/20(金) 20:22
11763 番 としき さんへのコメント コメント数 1
> 管理者権限で、過去に遡って介入とかあるかしら、ということを妄想してみました。
これは普通ではないですね。これをやる人は全部手作業なのでわ。(ぉ)
> とっかかりは、別途作成済みのhtmlファイルの断片を、望んだところにインクルード
> できるか否か、というところ辺りから試してみましょう。
うーん、これがイメージ出来ないのですよ。
> もし手動でやるにしても、そのファイルをメンテナンスするだけで、以後は好きな
> ように表示を変えることも可能になるわけですから、少しは楽になるのではないかな。
なのでここまでも出来そうにないですね。
こんな書き込みしている間に手動で終わってそうですが。(^^;
# まだ全然手を付けてない。
- No.11768 -
このTreeへ
コメント元:11763 へ
[リストへもどる]
soft
(11751)
11772:
Re^21: 過去ログ日付取得のラフスケッチ
投稿者:
としき
2024/12/20(金) 23:04
参照先:http://toshiki.la.coocan.jp/
11768 番 konno さんへのコメント
> > とっかかりは、別途作成済みのhtmlファイルの断片を、望んだところにインクルード
> > できるか否か、というところ辺りから試してみましょう。
> うーん、これがイメージ出来ないのですよ。
まず、インクルードってわかりますよね?
Vzのソースでも使っている技術ですから。
Perlだとrequire文ですか。
これって、ファイル冒頭で使うのが常套手段。
でも、ファイル冒頭でなければいけない、ということは全くなくて。
任意の場所でインクルードってできるわけですよ。
なら、これをHTMLでやることはできないだろうか、ということを言っているわけです。
ここまで、理解できます?
さて、HTML単体ではインクルードなんてことはできません。
本気でやるならJavascriptなんかを使うことになるでしょう。
でも、掲示板を出力しているのはCGIです。
なら、過去ログへのリンクを出力している部分で、CGIで自前でリンクを構築して
出力するのではなく、外部のテキストファイルを読み込んで、そのまま一切の加工
を加えずに出力する、なんてことはできるわけです。
そして、そのテキストファイルの作成に当たって、手作業で作ってもいいし、何らか
のトリガで自動で作るようにしてもいいのではないか、ということを考えました。
まぁ、あまりわかりやすくもないですかね。
どこがわからないかご指摘いただければ、もう少し違った角度から説明します。
- No.11772 -
このTreeへ
コメント元:11768 へ
[リストへもどる]
soft
(11751)
11788:
サイト更新 新着情報 V0.957
投稿者:
konno
2024/12/26(木) 22:49
11751 番 konno さんへのコメント
新着情報 V0.957 更新しました。
・DOSVAXJ3の日付更新を実装しました。
・リンク等の並びも再変更しました。
軟式のサイトはブラウザでないと読めないようです。
なので、複数のツールを組み合わせて無理やり実現しました。
Google Apps Script(GAS)を使ったwebスクレイピング
+コマンドラインFTPバッチ
+Windowsタスクスケジューラ
この組み合わせで1日6回DOSVAXJ3の日付を読みに行きます。
- No.11788 -
このTreeへ
コメント元:11751 へ
[リストへもどる]
soft