在WebBrowser(WinForm)中执行Javascript(jQuery)

去年搞的139说客活跃软件,采用WinForm开发,主要通过WebBrowser控件,对139说客的网页进行访问操作,如登录139社区,发说客,拨打G3电话。

之前我一直使用C#对表单元素进行操作,如模拟鼠标点击表单对象获取焦点,给表单对象赋值等等,对于简单的未经Javascript处理的表单对象进行这样的操作问题不大,但当遇到139说客的这个文本框(下图所示)时却不奏效了。

分类:雕虫小技 日期:2011年01月13日 评论:21条 阅读全文

.Net Winform(C#) WebBrowser + Javascript 随意说

使用Winform WebBrowser控件对访问页面执行、改写、添加Javascript代码,可以解决许多问题,实现你想要的效果。

可以通过引用Microsoft.mshtml,实现对Javascript的操作,代码如下:


mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as mshtml.IHTMLDocument2;
mshtml.IHTMLWindow2 win = doc.parentWindow as mshtml.IHTMLWindow2;
win.execScript(@"alert('hello webbrowser')", "javascript");

其实还有一种更好的、无需引用Microsoft.mshtml的实现方式:


HtmlElement ele = webBrowser1.Document.CreateElement("script");
ele.SetAttribute("type", "text/javascript");
ele.SetAttribute("text", "alert('hello webbrowser')");
webBrowser1.Document.Body.AppendChild(ele);

这种使用.Net框架本身所提供的对象,相比引用框架外的COM,好处是显而易见的,这将更方便于安装部署至客户机上。

分类:雕虫小技 日期:2010年05月05日 评论:5条 阅读全文

网站防采集防不慎防,采集技巧分享

各位站长都不希望自己从网络上辛苦整理回来的或者原创的一些资源被采集,于是便想方设法地对网站做了一些防采集的工作,但有些时候还是防不慎防,下面分享一下我的采集技巧。

我们来看一个简单的页面:http://www.5566.net/gov-gd.htm,这是中国精彩网址站其中的一个页面。从表面上看,要采集这个页面不是件难事,这仅是超链接的采集,即HTML源代码中的:<a href=网站地址>网站名称</a>,但查看该页面HTML源代码发现网站地址并不是明文显示,以下是源代码的一小片段。

<td width=25%><a href=# onclick="n8(412);return false;" target=_self>广东省人民政府</a></td>
<td width=25%><a href=# onclick="n8(652);return false;" target=_self>人大</a></td>
<td width=25%><a href=# onclick="f0(616);return false;" target=_self>政协</a></td>
<td width=25%><a href=# onclick="v0(312);return false;" target=_self>共青团</a></td>

通过分析可以发现,超链接href属性均为#,并且都加上了onclick事件,事件处理的函数如n8(412)、n8(652)、f0(616)、v0(312),这些函数名称是不规则的,很明显,网站地址将在这些函数中生成。

分类:雕虫小技 日期:2010年04月09日 评论:14条 阅读全文