http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 8659|回复: 4

[咨询站长] 要求使用多线程按顺序打开每个网页并保证网页加载完成

[复制链接]
发表于 2015-8-15 10:55:16 | 显示全部楼层 |阅读模式
8金钱
比如说 http://www.11684.net/ 这个网页,里面有很多个省市,希望使用多线程,一个个按顺序打开每个市的网页,并保证网页加载完成。可是我在循环中获得每个城市的名称并起一个线程打开相应网页,这样做的话,就不能保证网页打开的顺序了,请老大指点一下,如何才能使用多线程并保证网页的打开顺序



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2015-8-15 11:09:17 | 显示全部楼层
忘了说是用webbrowser控件在窗体中显示网页,就是像这个图这样

图例

图例
回复

使用道具 举报

发表于 2015-8-15 21:39:17 | 显示全部楼层
[C#] 纯文本查看 复制代码
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->private void ThreadWebBrowser(string url)
{
   Thread tread = new Thread(new ParameterizedThreadStart(BeginCatch));
   tread.SetApartmentState(ApartmentState.STA);
   tread.Start(url);
}

private void BeginCatch(object obj)
{
     string url = obj.ToString();
     WebBrowser wb = new WebBrowser();
     wb.ScriptErrorsSuppressed = true;
     //在这里Navigate一个空白页面
     wb.Navigate("about:blank");
     string htmlcode = GetHtmlSource(url); 
     wb.Document.Write(htmlcode);
     //执行分析操作   ……(略) 
}
//WebClient取网页源码
private string GetHtmlSource(string Url)
{
     string text1 = "";
     try
     {
        System.Net.WebClient wc = new WebClient();
        text1 = wc.DownloadString(Url);
     }
     catch (Exception exception1)
     {}
     return text1;
}
回复

使用道具 举报

发表于 2015-8-21 11:20:37 | 显示全部楼层
WebBrowser是单线程的,没法用于多线程操作的吧,必须要安顺序,那线程要它还有什么用呢。
回复

使用道具 举报

发表于 2015-9-1 07:12:05 | 显示全部楼层
eofd007 发表于 2015-8-15 11:09
忘了说是用webbrowser控件在窗体中显示网页,就是像这个图这样

帮不上你什么忙,但可以提供一个方向给你:使用cef,就是chrome浏览器多线程版本的,这个支持多线程,你要确保网页都打开,而且还要等待的话,可能还需要多线程中的“多线程等待”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 02:07

© 2014-2021

快速回复 返回顶部 返回列表