我正在使用一个使用 javascript 和 url-hiding 的公共网站,所以我不知道它是否是 php/asp,也不知道如何设置 POST。这是网站...(https://emops.twse.com.tw/server-java/t58query)
我需要做的是以编程方式单击每个 VIEW 按钮并在弹出的窗口中检索 html/response,并在将其加载到 html/response/string 后关闭窗口
通常我会使用 sql 命令从数据库执行此操作或将其导出到 Excel,但我无法访问该网站。我对可能使用javascripts来做到这一点的前端方式不是很熟悉......
我能想到的唯一“方法”是使用 WebBrowser Control 加载页面并调用“onclick”操作。但在那之后,我不确定我是否可以使用 shell32.dll 来 FindWindow 并读取它的所有内容然后关闭它......而且我不想涉及非托管代码。
我只设法用 HtmlAgilityPack 解析页面,但我还没有找到如何调用 CLICK(充当 POST)以及如何从弹出窗口(来自 CLICKING)获得响应......
private void ParseHtmlUsingAgilityPack(WebBrowser wbMOP)
{
HTMLDocument htmlDoc = (HTMLDocument)wbMOP.Document;
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlDoc.documentElement.innerHTML);
HtmlNodeCollection bodyNodes = doc.DocumentNode.SelectNodes("//form//table//tbody//td//input/@onclick"); //input/@value
List<string> listOfAttStr = new List<string>();
if (bodyNodes != null)
{
foreach (HtmlNode link in bodyNodes)
{
foreach (HtmlAttribute ha in link.Attributes)
{
if (ha.ValueLength > 24 && ha.Value.Substring(0, 22) == "document.fm_t05sr01_1.")
{
listOfAttStr.Add(ha.Value);
}
}
}
// write into text file here...
}
}
偶然的你