2023年8月21日月曜日

企業システムのセキュリティですから、個人利用のコードが使えなくなるのは致し方ないところ ー Selenium Basic(VBAマクロ)

          
最近、会社のシステムセキュリティが強化されて、仕込んだVBAが使えません。
それは、ネットのページをHTMLファイルにしてダウンロードする仕組みです。

このファイルは、エクセルに読み込まれて、必要なデータを検索していました。
ところが、突然ダウンロードできなくなって落としたファイルが全くの白紙だ。

これでは使い物にならないのですが、元凶は”URLDownloadToFile”なる関数ね。
VBAに実装されていますが、もはや使われないIE11でURLの展開をする仕組み。

ウインドウズでも、標準ブラウザーが”Edge”に置き換えたのに生き残っていた。
理由は互換性のためと思いますが、会社のシステムでは見限って禁止の断行だ。

こうなると、ダウンロード関数が使えなくなって、VBAで代わりの対策が必要。
VBA以外のプログラム言語を知らないし、プログラム言語を覚える気力もない。

なので、以前、遊びがてら試した”Selenium Basic”でできないかと考え始める。
言語自体も開発がすでに終わっていますが、代替策としては重宝されています。

なので、セキュリティの抜け穴として使えないものか、改めてコード作成なの。
ブラウザーからダウンロードしてインストールしますが、心配な点もあります。

それは、URLの読み込みにウエッブドライバー(webdriver.exe)を使います。
”Selenium Basic”のフォルダー配下にありますが、ブラウザーとリンクします。

なので、ブラウザーの頻繁なバージョンアップで、ドライバーも追従が面倒ね。
もし、バージョンの違いでダウンロードできなければ、エラーも表示されます。

一方、ドライバーを自動的に更新するコードもネットで見受けられてはいます。
これは後で参考することにして、先ずは、基本的なコードを理解するのが先決。

そう思ってコードを書きましたが、ダウンロードする箇所の指定がややこしい。
先ず、”Selenium”で動かすブラウザのドライバーを、変数定義するのが第一歩。

このオブジェクトから、色々な操作を行うメソッドを付加しながら実施します。
ただ、ページ上でどの部分をダウンロードするのか、指定が必要になりました。

IE11では一括ダウンロードできたのですが、こちらはHTML言語の知識が必要。
例えば、本文が必要なら"main"とか"main_text"ですが、探さないといけない。

このために、ターゲットになるURLを開いて、F12キーを押すと構文が現れる。
ブラウザーのデベロッパー機能なのですが、それなりに修練が必要と思います。

というわけで、サンプル構文を挙げておくので、参考にでもしてみてください。
この”Selenium Basic”は、使用する時に”Selenium Type Library”の参照設定も必要だし、当然、インストールしなければ使えませんので、少しハードルの高い機能だなと思ったのでした。

※サンプルコード
Sub UrlDwnLd()
Dim Driver As New Selenium.WebDriver 'ウエッブドライバーのオブジェクト
Dim elmsHtml As WebElements, elmHtml As WebElement
Dim FileNumber As Integer, Str As String
  Driver.Start "Chrome" 'クロームドライバーの起動
    Driver.Get "https://alpine-ski-slope.blogspot.com/2023/07/blog-post_20.html"  'クロームドライバーで読み込むURLの指定
      Set elmsHtml = Driver.FindElementsByClass("main")  '本文は"main"
FileNumber = FreeFile  '使えるファイル番号取得
    Str = ""
      Str = Str & Environ("homedrive")
        Str = Str & Environ("homepath")
          Str = Str & "\Downloads\test.txt"
             Str = Str & "" '保存先:ダウンロードフォルダに”test.txt”
  Open Str For Output As #FileNumber
    For Each elmHtml In elmsHtml
      Print #FileNumber, elmHtml.Text
    Next  '”test.txt”ファイルに一行ずつ書き込んでいく
Driver.Close
  Set Driver = Nothing
    Close #FileNumber
    MsgBox "ファイルの作成が完了しました", vbInformation
End Sub



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2023年8月19日土曜日

現在のファイル名を古い名前に戻せば、あーらドライバーが働いてくれると言う、姑息なマイクロソフトの手法に驚く ー Selenium Edge WebDriver(VBAマクロ)

クリックしてみな
     
セキュリティアップで、VBAでネット情報がダウンロードできなくなりました。
今までは、”URLDownLoadToFile”関数が使えたのですが、どうもブロックだ。

ならばと、”Selenium Basic”をインストールしてダウンロードを代替します。
ブラウザー”Chrome”のドライバーを使いますが、”Edge”も同系統のブラウザ。

母体がクロミウムで開発されていますので、ドライバーさえあれば使えそうだ。
実際に過去のドライバーは、ダウンロ―ドもできてクローム同様に便利でした。

ところが、マイクロソフトが、ダウンロードのファイル名を変更したようです。
そのまま、VBAでファイルを使ったら、エラーが出てドライバーを認識しない。

Sub sample()
  Dim Driver As New Selenium.WebDriver
    Driver.Start "Edge", "URLを記述"  '→ Edgeで起動を指定
      Driver.Get "/" '→ ここでedgedriver.exeを読み込んで来る
    Stop '→ ブラウザを閉じないための中断状態にする
End Sub

どうも、ドライバー名が”msedgedriver.exe”へ変更れされていると判明した。
であるなら、Driver.Startで”Edge”から”MSedge”に切り替えたらどうなるか。

やってみると、エラーが出ますので、”Selenium Basic”は、”Edge”だけです。
何なら、新ドライバーのファイル名を旧ファイル名に戻して、コピペしようか。

正に、中国の「上に政策あり、下に対策あり」という現象に見習ったのですな。
実際にやってみたところ、あーら、ちゃんとブラウザが起動してくれて安堵だ。

以前も、このブラウザでは、起動アプリのプログラム名が変更されていました。
この時も、VBAコードを書き替えて対応した思い出があり、似たようなものか。

もっとも、このドライバーは頻繁に更新されるようなので、差し替えも必要ね。
ダウンロードで解凍して、コピペしたらドライバー名を旧名に戻して対応する。

というわけで、だいぶ前に開発の終了した”Selenium Basic”では変更もない。
他方、VBAだって2012年にリリースしたVer7.1が最終で、これ以上の変更はありませんから、似た者同士のお古なアプリを使うとして、マイクロソフトが姑息に変更を掛けるのも、新しいPythonやSelenium言語を使わせたくて必至なのだろう苦笑するのでした。

注:使用したExcelは、”Office365”版です。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2023年8月17日木曜日

台座付きなのだから、もう少しは放熱の効果があるだろうと気休めで購入した見たのでござる ー 無線LAN子機(パソコン)

    
以前の投稿でも、無線LANのUSBチップが発熱する問題を取り上げていました。
この現象が起きてから、チップ自体を5センチの小型ファンで空冷するのです。

これをすれば、熱暴走してWiFiが機能停止をすることもなくなり一安心でした。
ただ、デスクトップの前面パネルにあるUSBコネクターが不具合になりました。

USBチップはWiFi接続ができても、ブラウザーを開くと、すぐ接続が切れるの。
その内、チップがオシャカになり、予備チップに切り替えてダマシダマシ使う。

これも接続がぶつぶつ切れるので、どうも前面パネルのUSBヘッダ-が怪しい。
マザボには、拡張用の増設USBポートが二つくらいは、備え付けてありますね。

例えば、USBメモリーを使う時、前面パネルで抜き差しできれば便利なのです。
なので、PCケースには初めから、接続ポートの9ピンコネクタが付いています。

ただ、自分のPCケースはレトロなセミタワー型で、それすら無いから自作だ。
色々な部品を取り外して接続できるように、全面パネルに穴を開けて改造する。



こうして、USBメモリ用として使ってきましたが、LANチップは不具合かな。
ならばと、バックパネル部から1mのUSBケーブルを挿してチップを接続だ。

こうして、前面パネルより動作が安定するようになりましたが、発熱が不安だ。
ならば、Amazonで代わりはないかと物色していたら、クレードル付きを発見。

商品の写真を見ますと、どうもアンテナ付きのLANチップに挿す受け台みたい。
この意味が分かりませんでしたが、ゆりかご、またはそのような物を指すとか。

格好つけて横文字で名称を説明すればいいもんじゃなくて、台座で良いだろう。
と思いましたが、このクレードル付きは付属品の分だけ、チップ単体より高価。

それでも、マザボのバックパネルに接続したケーブルを前へ回して台座を固定。
こうすれば、何となく電波を上手に拾って接続も改善する気持ちになりました。

というわけで、クレイドルとはモバイル端末接続用の拡張ステーションの総称。
ネットのIT用語辞典でも、据え置き型、スタンド型であって、端末を気軽に設置したり取り外したりできるようになっていると説明してますので、なぜ台座と言わないのか、レトロなおじさんは横文字文化に抗議したくなるのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



2023年8月15日火曜日

ガーデニングで古い土の再生から用土作りも大切ですが、最近は、肥料も上手な栽培には重要だと気が付き出した - マグアンプK(ガーデニング)

     
五月に植え付けアサガオで一株が最初の花を咲かせましたが、縁白の青でした。
以前、赤花の種子を植えたのに突然変異なのか青に変わっていたと投稿で報告。

撮れた種が真っ先に咲かせてくれたのですが、もう一つ今年は成長が違うんだ。
丈が非常に低くて、つる性植物特有の園芸ネットを這う前から咲き出しました。

まだ、丈が15センチしかないのですが、それでも咲いてくれたのがうれしいな。
多分、マグアンプKという遅効性肥料を用土にすき込んでいた効果なのだろう。

この肥料は、肥料成分がゆっくり溶けて、根にやさしく張りを促す効能なのだ。
大粒・中粒は土に混ぜ込みますが、小粒は用土の上から置き肥もできそうです。

それで、アサガオの根の張り方が良いので、ツルを伸ばさなくても開花できた。
この商品のおかげだと思いますが、液肥と併用すると効果が増すとありました。

なので、商品名の”花工場”や”リキダス”を撒いて、もっと花を増やそうと思う。
それで、この効果を目に見た中、栽培中のウマノスズクサの成長が芳しくない。

芽が伸び出しては枯れていくのを繰り返しており、地下茎がやせ細るだけです。
こうなると、地下茎の栄養分を吸収しつくして、やがて枯れ死んでしまうかも。

一鉢は、弱弱しくともなんと成長していますが、もう一株は枯れそうな気配だ。
ならば、このマグアンプを置き肥でよいから撒いてみようと思い、購入を決断。


小粒をアマゾンから購入しましたが、送料無料の二千円以上で他の二点も追加。
”ハイポネックスリキダス”のエコパックと、”連作の障害が気になる土に 600G”

液肥の”花工場”を使ってもなかなか減らず、十年以上になるので買い替えたい。
その決断として、”リキダス”を買い求めましたが、”花工場と併用しても面白い。

このウマノスズクサは、春の植替えでマグアンプを使ったと紹介がありました。
なので、複数の方が利用されていて、この植物にも効果があるからなのだろう。

というわけで、緊急で購入した小粒を撒きて、置き肥を速攻で実施すると決断。
それで、アサガオは十二株を栽培中ですが、マグアンプのおかげなのかツルの伸びが良い意味で緩慢で、その割に根付きが良いのか、丈が低くとも葉の育ちがしっかりしているので、このまま開花するまで成長してもらいたいと思う自分がいるのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村