「Linux ブラウザ式クローラー 備忘録2 (2025/11/6)」


「"ブラウザの見ている画面"データをn分毎に自動セーブする」方法






さて、一般的に。
ブラウザはセキュリティ上の理由で

 ・ローカルファイルに書き込みできない。
 
 ・自作ブラウザ拡張で、カスタムスクリプトを仕込んで。
  外部サーバーに送信しようとしても。
  CORSで止められる。



データの盗聴/盗難を防ぐために、
ブラウザのここらは
ガチガチに規制されてます。(当然の措置なのですが)


いったい、どーやったらデータをブラウザの外に持ち出せるの? ^^A;





私が見つけた解法4つをご紹介します。


〜〜〜〜〜解法A〜〜〜〜〜

単純に
 「キーボード / マウス の動きを再現するマクロ」
を作って、
「ページの保存」を定期的に実行する。




非常に原始的な手法・・・

原始的ゆえに、間違いなく動く。シュアな方法ですが。

スマートとは言い難い。




〜〜〜〜〜解法B〜〜〜〜〜

(Windows限定)

・自作でプロキシーソフトPを作る。

・ブラウザはPを通してサイトにアクセスし。

・Pがデータを覗き見。そこでセーブ。



もっともこれは、「データの盗聴」
そのものであり。(汗)

セキュリティ上の観点で
実行可能なOSと不可能なOSがあります。
 

Windows系はここらの規制が緩い。

このプロキシーを挟む手法で「データの盗聴」どころか、
やろうと思えば「データの改変」もできました。

何故かユルユル。




で、Linuxだと。この行動がNGになります。



同じ事をしようとすると。
OSが「データの盗聴」を検知して、
通信がブロックされてしまう。


・・・その指摘はごもっとも。

実際、わたくし。
(セルフとは言えど)盗聴行為をしようとしています。
言い訳の余地はございません。



ここが。私がLinuxに乗り換えた時。

どーしても、この
(Windowsでは使えていた)プロキシー手法が
Linuxには移植できず。

すんごい苦労しました。





違う、これじゃない。

「"ブラウザの見ている画面"データをn分毎に自動セーブする」方法



たかがテキストデータを
取得するのがこんなにむずかしいとは。
なにか、他に手はないのか。


次回に続く。




「17角形とガロア理論 第45章 5次方程式の解の√記述不可能性 (再放送) (2025/11/3)」


はい、これこそが。

5次方程式
 x5 + ax4 + bx3 + cx2 + dx1 + e = 0

のxは、√では記述できないので。
公式が存在しない。

解くのに300年間かかった、
正真正銘のウルトラ超難問
に対する解答。



17角形とガロア理論 第45章 5次方程式の解の√記述不可能性


















何が起きているのか。
まぁ、おおざっぱに解説しますと。^^;A


例えば二次方程式

x2 + 3x + 1 = 0

を考えます。


この方程式は、各々の係数は 2,3,1。
つまり「整数フィールドZ」で記述されている。


実際には、整数Zを四則演算 (+−×÷)で閉じさせると
分数q (2/3 など...)が出てくるので

 「方程式の係数は、有理数フィールドQ」
を作っている。





その一方で。

この方程式の解は。
よく知られた二次方程式の公式を使って

 α = (-3 +√5) /2
 β = (-3 − √5) /2
 
であり。

解を記述するのには「√5」と言う数が必要になる。
これはオリジナルのQには
存在していなかった数である。


(Q ∪ √5) を四則演算で閉じさせると、
 「拡張フィールド Q(√5)」
が出てくる。


元の方程式の記述にはフィールドQだったのですが、
方程式の解にはフィールドQ(√5)。


方程式を解くには、
オリジナルよりも大きなフィールドが必要になります。



・・・で。
フィールドがどれぐらい大きくなったかと言いますと。


これらの2つのフィールドを割り算すると

  拡張フィールドQ(√5) / 係数フィールドQ = グループG

分子の"フィールド"と
分母の"フィールド"が消しあい。
単位レスの"グループG"が出てくる。


グループGの正体はなにか。
それは、

 √5 × √5 = 5
 
であるからして、二回の掛け算したら元のフィールドに
戻るような物。

つまり、Gはサイクリックのサイズ2が確定する。





こんな感じで。

五次方程式には

 x5 + ax4 + bx3 + cx2 + dx1 + e = 0

元の方程式の記述にはフィールドQ。
この方程式の解を記述するにはフィールドQ(α,β,γ,δ,ε)が必要であり。


両者の関係は
  フィールドQ(α,β,γ,δ,ε) / 係数フィールドQ = 置換グループ S5
が出てきて。


置換グループ S5
はサイクリックには分解できないので、

α,β,γ,δ,εは√は記述できない。



まぁ、だいたいそういう事です。
ガロア理論。




「Linux ブラウザ式クローラー 備忘録 (2025/10/30)」


さて、以前にも書きましたが。

わたくし今はLinuxを使っています。



(移行した理由:
 ・OSの強制アップデートがない。
 ・変なアプリの強制インストールがない。
 ・無料なので、試すだけ試してみればいい。)



その時。
普段使ってるWindows系アプリは
全てLinux系アプリに乗り換える必要があるのですが。



その中で、最も苦労したのは

  ブラウザのデータを取得して、ファイルにセーブする

いわゆる「クローラー」ソフトの製作です。


例えば、こういうチャート的なデータ。



「ブラウザの、今見ているページの.htmlデータを、一定間隔でローカルファイルに保存する」

たったそれだけの話なのですが
実際にやろうとすると、めっちゃ難しいのです。-_-;




なんでそんなに大変かと言うと。

ブラウザと言うのは(驚くべき事かも知れませんが)
 「ローカルファイルの読み書き」
が禁止されています。



ブラウザがローカルファイルに書き込みたければ、
かならず「ダウンロード」と言う形を取る必要がある。

これはセキュリティ上の要請であり。
このルールを破るのはほぼ不可能。


いずれにせよ。ブラウザのデータを
「任意のローカルファイル.html」に保存するのは
不可能なのです。




唯一の例外が。


ページの保存時でしょうか。

だがこれも、「明示的に、ユーザーが許可した時」
のみ可能であり。
絶対に「ユーザーのクリック動作」が必要。


「n分間隔で、自動で保存してくれ」 そういう動作は出来ないようになっています。





・ちなみに プログラム的に

  new System.Net.Http.HttpClient().GetStringAsync("url");


と書いて、こういう画面のデータを取得するのは不可能です。


と言うのも。
  new System.Net.Http.HttpClient().GetStringAsync("url");
が取得するのはstaticなhtmlデータ。


だが、↑のチャートなどは。
JavaScriptを使って動的にデータを取得・更新しているので。

static / html 的な視点からでは
値を取得する事ができません。
  
  
やはりブラウザで見ている(Javascriptを実行できる)
環境でないとこのデータは取得できません。





そこで次に私が試したことは:
 ・自作のブラウザの拡張 "I_Want_To_Save"を作り
 ・"I_Want_To_Save"が、自作サーバーにデータを送信し
 ・サーバーで受け取って保存する。
 



こんな感じで。
データを、外部に送り出して。
そこでキャッチするシステムを作ったのですが。

これも無理でしたね。


これをやると、


「クロスオリジン CORS」に引っかかって、実行できないんですわ。
(簡単に説明すると。Javascriptは、"サーバー側が許可した.js"のみが許可され。
 ユーザーの自作.jsは許されない。)


まぁ・・・当然ですかね。(-_-;A

何しろ。私がやろうとしてる事は:


 ・カスタムスクリプトをページに挿入し、
 ・ユーザーのアクセスしているデータを、外部サーバーに送信
 
まさしく「盗聴」行為ですので。(汗)


当然、そのような犯罪的なスクリプトの
対策はしっかりされてて。
実行できないようになっておりました。



と言うわけで。


「ブラウザの見てる画面を保存」すると言うのは。



思っているよりもずっと難しい。
セキュリティ上の懸念で。
そのような盗聴的な行為はガッチガチに規制されている。


どうやって、これ。
ローカルファイルに保存できるの?



もっと"捻った"アイディアを絞り出す必要がある。
 (だからこれは「難しい問題」なのです。-_-;)


次回。私が見つけた「保存」の手法を紹介します。