这是个简单的爬虫程序,想要在程序运行当中动态改变label的值,但是始终不行,
不知道什么问题?private void button1_Click(object sender, EventArgs e)
{
showLabelDelegate sl = new showLabelDelegate(showLabel);
if (txt_url.Text.ToString() == "")
{
//MessageBox.Show("请填完全信息");
sl.BeginInvoke("请填完全信息",null,null);
return;
} button1.Enabled = false;
button2.Enabled = true;
//showLabelDelegate sl = new showLabelDelegate(showLabel);
sl.BeginInvoke("初始化中,请稍候...",null,null); //this.BeginInvoke(sl, new object[] { "初始化中,请稍候..." }); //得到值和初始化
this.url = txt_url.Text.ToString();
this.begin = Convert.ToInt32(txt_begin.Text);
this.end = Convert.ToInt32(txt_end.Text);
urlqueue = new Queue(); //开始抓取
string tempString = url;
string strContent = "";
string mearname = "";
int m = 1; for (int i = begin; i <= end; i++)
{
tempString = url.Replace(@"**", i.ToString());
urlqueue.Enqueue(tempString);
}
while (urlqueue.Count != 0)
{
tempString = (string)urlqueue.Dequeue();
strContent = GetHtmlFromUrl(tempString);
string regexString = @"<td bgcolor=#F3F8F7 colspan=2 height=21 align=center><a\shref=([\w\W]*?)\sclass=a01\starget=_blank>([\w\W]*?)</a>";
string[] getUrls = getElements(strContent, regexString, "$1");
string[] getNames = getElements(strContent, regexString, "$2");
for (int k = 0; k < getUrls.Length; k++)
{ if (getNames[k].IndexOf(":") != -1)
{
mearname = getNames[k].Substring(getNames[k].LastIndexOf(":") + 1);
}
else
{
mearname = getNames[k];
} spiderSql.insertUrl(getUrls[k], mearname);
sl.BeginInvoke("初始化中,请稍候...已抓取链接(" + m + ")", null, null);
//this.messages.Text = "初始化中,请稍候...已抓取链接(" + m + ")";
m = m + 1;
}
}
......
不知道什么问题?private void button1_Click(object sender, EventArgs e)
{
showLabelDelegate sl = new showLabelDelegate(showLabel);
if (txt_url.Text.ToString() == "")
{
//MessageBox.Show("请填完全信息");
sl.BeginInvoke("请填完全信息",null,null);
return;
} button1.Enabled = false;
button2.Enabled = true;
//showLabelDelegate sl = new showLabelDelegate(showLabel);
sl.BeginInvoke("初始化中,请稍候...",null,null); //this.BeginInvoke(sl, new object[] { "初始化中,请稍候..." }); //得到值和初始化
this.url = txt_url.Text.ToString();
this.begin = Convert.ToInt32(txt_begin.Text);
this.end = Convert.ToInt32(txt_end.Text);
urlqueue = new Queue(); //开始抓取
string tempString = url;
string strContent = "";
string mearname = "";
int m = 1; for (int i = begin; i <= end; i++)
{
tempString = url.Replace(@"**", i.ToString());
urlqueue.Enqueue(tempString);
}
while (urlqueue.Count != 0)
{
tempString = (string)urlqueue.Dequeue();
strContent = GetHtmlFromUrl(tempString);
string regexString = @"<td bgcolor=#F3F8F7 colspan=2 height=21 align=center><a\shref=([\w\W]*?)\sclass=a01\starget=_blank>([\w\W]*?)</a>";
string[] getUrls = getElements(strContent, regexString, "$1");
string[] getNames = getElements(strContent, regexString, "$2");
for (int k = 0; k < getUrls.Length; k++)
{ if (getNames[k].IndexOf(":") != -1)
{
mearname = getNames[k].Substring(getNames[k].LastIndexOf(":") + 1);
}
else
{
mearname = getNames[k];
} spiderSql.insertUrl(getUrls[k], mearname);
sl.BeginInvoke("初始化中,请稍候...已抓取链接(" + m + ")", null, null);
//this.messages.Text = "初始化中,请稍候...已抓取链接(" + m + ")";
m = m + 1;
}
}
......
解决方案 »
- 我做了一个activex,然后又做了一个安装包,但使用时需要数字签名才能安装,不知道谁能告诉我怎么给安装包加签名。
- C# 批量更新
- C#中的数据库与datagridview的问题
- (100分在线等)第一次点击(比如点击ID得到2)时会出现空窗口,查看地址为:.aspx?id= 此处为空。求解
- sqlDataAdapter无法自动生成update和delete操作
- 求助!急急急!如何用C#写随机生成24位数字的程序!小弟摆脱各位大侠了!
- 水晶报表如何在已经插入的交叉表中插入一个序号列?
- 怎么样才能获得积分?我的积分没了
- 十万火急!!在线等! 高手请进啊小弟感激不尽~~
- Gzipstream使用中出现问题,GZip 头中的幻数不正确。附源码。
- 如何实现类型转换
- C# 组态软件的开发与设计
public void showLabel(string info_string)
{
Thread.Sleep(200);
this.messages.Text = info_string;
}
改了一下代码,好像还是不行。
private delegate void show(string str);
private void button5_Click(object sender, System.EventArgs e)
{ show s = new show(Write);
s.BeginInvoke(DateTime.Now.ToString("mm-ss"),null,null);
}
private void Write(string str)
{
while (true)
{
button4.Text = DateTime.Now.ToString("mm-ss");
Thread.Sleep(1000);
}
}
{
Monitor.Enter(this);
StreamWriter sw;
String fileTimeMonth = ChangeToFlvLOG.ToString() + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();
if (Directory.Exists(fileTimeMonth) == false)
{ System.IO.Directory.CreateDirectory(fileTimeMonth); }
//建日期文件
String fileTimeDay = fileTimeMonth + "\\" + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + ".txt";
if (File.Exists(fileTimeDay) == false)
{
sw = File.CreateText(fileTimeDay);
}
else
{ sw = File.AppendText(fileTimeDay); }
strLog = DateTime.Now.ToString() + " " + strLog;
sw.WriteLine(strLog);
sw.Flush();
sw.Close();
sw = null; if (DateTime.Now.Day != DayTemp)
{
DayTemp = DateTime.Now.Day;
xmlData = null;
}
String str = strLog
xmlData.Insert(0, str);
if (this.MyLog.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(dd);
this.MyLog.Invoke(d, xmlData.ToString());
}
else
{
this.MyLog.Text = xmlData.ToString();
}
Monitor.Exit(this); }
delegate void SetTextCallback(string text);
private void dd(String xmlData)
{ MyLog.Text=xmlData ;
}
if (this.MyLog.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(dd);
this.MyLog.Invoke(d, xmlData.ToString());
}
else
{
this.MyLog.Text = xmlData.ToString();
}
{
message.BeginInvoke(sl, new object[] { "初始化中,请稍候..." });
}
else
{
message.Text="chushihua";
}
刚试过,不行,真是怪事!
{
showLabelDelegate sl = new showLabelDelegate(showLabel);
if (txt_url.Text.ToString() == "")
{
//MessageBox.Show("请填完全信息");
// message.BeginInvoke(showLabel, new object[] {"" });
//sl.BeginInvoke("请填完全信息",null,null);
return;
} button1.Enabled = false;
button2.Enabled = true;
//showLabelDelegate sl = new showLabelDelegate(showLabel);
message.Invoke(sl, new object[] { "初始化中,请稍候..." });
//sl.BeginInvoke("初始化中,请稍候...",null,null); //this.BeginInvoke(sl, new object[] { "初始化中,请稍候..." }); //得到值和初始化
this.url = txt_url.Text.ToString();
this.begin = Convert.ToInt32(txt_begin.Text);
this.end = Convert.ToInt32(txt_end.Text);
urlqueue = new Queue(); //开始抓取
string tempString = url;
string strContent = "";
string mearname = "";
int m = 1; for (int i = 0; i < 2000000000; i++)
{
} }
{
//showLabelDelegate sl = new showLabelDelegate(showLabel);
if (txt_url.Text.ToString() == "")
{
//MessageBox.Show("请填完全信息");
// message.BeginInvoke(showLabel, new object[] {"" });
//sl.BeginInvoke("请填完全信息",null,null);
return;
} Thread mythread = new Thread(new ThreadStart(myevent));
mythread.Start();
button1.Enabled = false;
button2.Enabled = true;
//showLabelDelegate sl = new showLabelDelegate(showLabel);
// message.Invoke(sl, new object[] { "初始化中,请稍候..." });
//sl.BeginInvoke("初始化中,请稍候...",null,null); //this.BeginInvoke(sl, new object[] { "初始化中,请稍候..." }); //得到值和初始化
this.url = txt_url.Text.ToString();
this.begin = Convert.ToInt32(txt_begin.Text);
this.end = Convert.ToInt32(txt_end.Text);
urlqueue = new Queue(); //开始抓取
string tempString = url;
string strContent = "";
string mearname = "";
int m = 1; for (int i = 0; i < 2000000000; i++)
{
}
} void myevent()
{
showLabelDelegate sl = new showLabelDelegate(showLabel);
sl.BeginInvoke("sfsfs", null, null);
}