C#模拟点击网页,等待网页加载完成再执行代码的问题 为什么要用webbrowse做分页,winform不能写分页吗!真是多此一举! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在webBrowser1里有个页面加载完成后触发的时间,你找找看。 抓取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; } } } } webbrowser 貌似要回传 然后你才可以获取到上面的html 为什么要用webbrowser 只是为了模拟点击? 主要为了获取网页执行AJAX返回的数据,方便一点 wb.ReadyState == WebBrowserReadyState.Complete 这个没用啊,模拟点击之后,webbrowser的状态一直是complete 这个没用啊,模拟点击之后,webbrowser的状态一直是completeajax没不需要wb啊,wb并没有方便点,反而处理麻烦,用http不是更好吗。 打开一个excel工作簿文件 将mdb文件内容导出 C#如何对文件夹加密和解密(会的定有报酬) 求助---如何复制一个数据表 VS2005 DataSet设计器中表多的时候会出现问题吗? 动态绑定数据自动生成的datagrid,如何实现翻页、排序呢? 菜鸟求助 !!!!!请高手帮忙哈 ! 请教:C# Winform如果把截图(例如:QQ截图)的内容在pictureBox显示。 急!急!急!各位大侠!帮忙写个向XML文件中插入节点例子嘛! 一个编译问题 文件被占用,求助--------------------------------- Repeater获取数值
//测试链接 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;
}
}
}
}
主要为了获取网页执行AJAX返回的数据,方便一点
这个没用啊,模拟点击之后,webbrowser的状态一直是complete
这个没用啊,模拟点击之后,webbrowser的状态一直是completeajax没不需要wb啊,wb并没有方便点,反而处理麻烦,用http不是更好吗。