前些天想用PHP socket做一个网站的自动登录和数据采集,却发现这个网站用HTML5编写,数据存储用localstorage,PHP暂时找不到localstorage的数据提交方法,想用C#实现,却发现C#自带的webBrowser是调用IE的核心,IE是不支持localstorage的。只有找C#的第三方浏览器插件,刚开始用GeckoFx,发现GeckoFx的文档太少了,又没更新,最后找到webKit,文档一样是少得可怜,相关实例在网上只找到一二个有参考价值的。下面是我要用C# + webkit实现的功能。
目前创新互联公司已为上千家的企业提供了网站建设、域名、网络空间、网站托管维护、企业网站设计、邛崃网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。c#调用webKitBrowser浏览器打开网址,加载完成后,模拟点击网址页面上的一个
以下代码在WebKit.NET-0.5,VS2010环境下测试成功。
c#
webKitBrowser1.StringByEvaluatingJavaScriptFromString("document.getElementById('youidname').click()");
这种方法实现模拟点击有问题,只能实现input的点击,想模拟div或a标签点击会提示"对 COM 组件的调用返回了错误 HRESULT E_FAIL。"
用下面的方法没有问题
webKitBrowser1.StringByEvaluatingJavaScriptFromString("var _elm = document.getElementById('youidname');var _evt = document.createEvent('MouseEvents');_evt.initEvent('click', true, true);_elm.dispatchEvent(_evt);");
另外C#运行页面的JS方法可以这样
webKitBrowser1.Document.InvokeScriptMethod("add_div"); //add_div是JS的方法名称
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。