最終更新日 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);