我想做个软件,做到一个功能的时候被卡住了,我取得一个网站的数据,这个网站是JSP做的,想获取的这个数据是实时动态的表格里的数据,他自己是30秒更新一回,他自己有刷新的图片按钮,我拿到了这个网页的一部分源码,其中也包括这个刷新的JS函数,就是想利用Timer这个定时器和它自己的刷新函数来让网站数据1秒刷新一回,这样一个功能如何实现,还有就是如何获取它表格里的数据??最好是C#语言,别的也行,指导个思路也可以。

解决方案 »

  1.   

    使用mshtml中的IHTMLDocument2 ,它好像有个执行js代码的方法,调用它执行"setTimeOut('refreshFunc',1000)"
    如果是刷新网页来刷新数据的话,那你就要不停的执行一秒后刷新的js获取表格里面的数据...
    你先看看它刷新数据是怎么实现的 如果使用Ajax来实现的 一般使用JsOn数据格式,
    那么你可以直接用HttpWebRequest来获取数据了当然 使用正则表达式分析html中的table也是一种选择
      

  2.   

    能给个具体表示例子么?
    这个网站网址保护的比较好,我虽然下下他的JS函数,但是JS的函数具体位置不能确定,调用的时候源地址怎么填呢?如何能伪装成它自己的网页进行调用呢?
      

  3.   


     int i = 0;
            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                mshtml.IHTMLDocument2 iHTMLDocument2 = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;
                mshtml.IHTMLWindow2 iHTMLWindow2 = (mshtml.IHTMLWindow2)iHTMLDocument2.parentWindow;            disableConfirm();            // 实现单击按钮 
                mshtml.IHTMLElement iHTMLElement = (mshtml.IHTMLElement)iHTMLDocument2.all.item("b34", 0);
                iHTMLElement.click();// 单击 
                i++;
                label1.Text = i.ToString();
                Thread.Sleep(100);            webBrowser1.Url = e.Url;
            }        //禁用目标window的confirm、alert等对话框。
            private void disableConfirm()
            {
                HtmlDocument doc = webBrowser1.Document.Window.Document;
                //框架结构中,必须正确的指定目标框架            IHTMLWindow2 win = (IHTMLWindow2)doc.Window.DomWindow;            string s = "";
                s += @"function confirm() {";
                s += @"return true;";
                s += @"}";            s += @"function alert() {}";            s += @"function killErrors() {return true;}window.onerror = killErrors;";            win.execScript(s, "javascript");        }虚拟用户刷票
      

  4.   

    是IHTMLWindow2 阿 记错了 汗
      

  5.   

    如何确定  mshtml.IHTMLElement iHTMLElement = (mshtml.IHTMLElement)iHTMLDocument2.all.item("b34", 0);
    里的"b34",比如在这里:<div id=u><a href=http://passport.baidu.com/?login&tpl=mn>登录</a></div>
    用的就是"u"?楼上能再说明白点么?还有楼上能说说利用MSHTML如何提取网页表格的数据呢?
      

  6.   

    补充一下,如果页面代码中就没有设置ID,像这样:<th class="lr" onclick="getOddsRB();"><img alt="Refresh" title="Refresh" src="OpRBHDP_data/refreshIcon.gif"></th>那么如何调用它的点击事件呢?