最終更新日 2024-09-25
「hmPy・IronPython」の例題③ Webデータの取得
概要
IronPythonの例題のひとつとなります。
Webデータの取得
C#で利用するのと、全く同一です。
#PY = loaddll( hidemarudir + @"\hmPy.dll" );
// 読み込むアドレスを変数に設定
$targeturl = "http://www.yahoo.co.jp";
// WebClientを利用して、簡単に取得できる。
// 正規表現の利用なども。
#_ = dllfuncw(#PY, "DoString", R"IPY(
import clr
import System
clr.AddReferenceByPartialName('System.Net')
from System.Net import WebClient
# 最近はWeb側で新しいプロトコルでないと受け付けない。Tls12以上を求められることが多い。
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls13;
# 秀丸マクロの$targeturlからコピー
targeturl = hm.Macro.Var["$targeturl"]
client = WebClient()
client.Encoding = System.Text.Encoding.UTF8;
content = client.DownloadString(targeturl)
clr.AddReferenceByPartialName('System.Text.RegularExpressions')
from System.Text.RegularExpressions import Regex
# 「<」の前に■を埋め込む
content = Regex.Replace(content, '>(<[a-zA-Z])', '>■$1' )
# IronPythonのcontent_cr変数を、秀丸マクロの$contentへとコピー
hm.Macro.Var["$content"] = content
hm.OutputPane.Output(content);
)IPY"
);
debuginfo 1;
debuginfo $content;
// 解放
freedll(#PY);