如何在C#或WPF

时间:2016-09-01 08:13:23

标签: javascript c# .net winforms webbrowser-control

我在VS2015上使用C#.net 4.5并尝试抓取网站。 HTML表格到数据。 对于使用winform C#one的Web浏览器控件,因为我听说有一个功能比WPF控件更多。

这是我尝试解析的网站。 (韩国音乐流媒体网站,如苹果音乐) http://www.melon.com/mymusic/like/mymusiclikesong_list.htm?memberKey=7605160 并且有一个用于翻页的脚本,如下所示。

javascript:pageObj.sendPage('21');

表示自数据列表21以来显示数据表。 但我不知道如何在我的C#webbrowser中运行该脚本。 我尝试使用带参数的InvokeScript运行,但它无法找到脚本。 据我所知,为了执行对象包装函数,我可以像加载代理一样在加载的HTML文档中注入一个函数。但它也失败了。 经过多次尝试,我发现Chrome控制台(F12)可以很容易地执行该功能。 是否有任何源代码片段或第三方库在C#中运行javascript就像Chrome控制台一样?或者即使我必须实施它,请给我任何提示。

2 个答案:

答案 0 :(得分:1)

javascript:pageObj.sendPage('21');是您可以导航到的网址。 Web浏览器实际上并没有导航到脚本,而是执行脚本。因此,您只需使用NavigateWebBrowserControl方法:

this.webBrowser1.Navigate("javascript:pageObj.sendPage('21');");

答案 1 :(得分:0)

我通过以下命令通过Web浏览器控制WPF来调用javascript:

string ScriptName = "sendPage";
string ID = "21";
this.WebBrowserPage.InvokeScript(ScriptName, ID);