为什么要用webbrowse做分页,winform不能写分页吗!真是多此一举!

解决方案 »

  1.   

    在webBrowser1里有个页面加载完成后触发的时间,你找找看。
      

  2.   

    抓取500个歌名
    //测试链接 http://music.baidu.com/top/dayhot
                string myHtml = string.Empty;//得到歌曲名称列表
                private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
                {
                    
                    WebBrowser wb = sender as WebBrowser;
                    if (wb.ReadyState == WebBrowserReadyState.Complete)//是否加载完成
                    {
                        HtmlDocument doca = wb.Document;
                        //开始抓取歌曲名称
                        var song_list = Regex.Matches(wb.DocumentText, @"(?i)<span[^>]*?class=(['""])song-title\s*?\1[^>]*?>\s*?<a[^>]*?>([^<>]*?)</a>\s*?(?:(?!</span>)[\s\S])*?</span>").Cast<Match>().Select(a => a.Groups[2].Value);
                        myHtml += string.Join("|", song_list);
                        foreach (HtmlElement item in doca.GetElementsByTagName("A"))//读取所有A
                        {
                            if (item.OuterText == "下一页>")//判断下一页
                            {
                                item.InvokeMember("click");
                                break;
                            }
                        }
                    }
                }
      

  3.   

    webbrowser 貌似要回传 然后你才可以获取到上面的html
      

  4.   

    为什么要用webbrowser 只是为了模拟点击?
      

  5.   


    主要为了获取网页执行AJAX返回的数据,方便一点
      

  6.   

    wb.ReadyState == WebBrowserReadyState.Complete
      

  7.   


    这个没用啊,模拟点击之后,webbrowser的状态一直是complete
      

  8.   


    这个没用啊,模拟点击之后,webbrowser的状态一直是completeajax没不需要wb啊,wb并没有方便点,反而处理麻烦,用http不是更好吗。