C#做网页抓取的时候后台执行js

  using System.Reflection;

  public string GetJsString(string msg)

        {

            Type obj = Type.GetTypeFromProgID("ScriptControl");

            if (obj == null) return null;

            object ScriptControl = Activator.CreateInstance(obj);

            obj.InvokeMember("Language", BindingFlags.SetProperty, null, ScriptControl, new object[] { "JavaScript" });

            StringBuilder js = new StringBuilder(" function jsAction(msg){ return msg;}");

            obj.InvokeMember("AddCode", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { js.ToString() });

            return obj.InvokeMember("Eval", BindingFlags.InvokeMethod, null, ScriptControl, new object[] { "jsAction('"+msg+"');" }).ToString();

        }   

posted @ 2018-05-29 18:13  emmmmm....m  阅读(264)  评论(0编辑  收藏  举报