private void DownloadSoft() { Gather.cGatherWeb gData = new Gather.cGatherWeb(); //增加采集的标志 Task.cWebpageCutFlag c; c = new Task.cWebpageCutFlag(); c.id = 0; c.Title = "版本"; c.DataType = (int)cGlobalParas.GDataType.File; c.StartPos = "<a href=\""; c.EndPos = "\""; c.LimitSign = (int)cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; DataTable dGather = gData.GetGatherData("http://www.yijie.net/user/soft/updatesoukey.html", cGlobalParas.WebCode.utf8, "", "", "", Program.getPrjPath(), false); dGather = null; gData = null; m_sender.BeginInvoke(m_senderDelegate, new object[] { true }); }
//这是一个通讯的接口方法,不做采集规则的处理,所有需要采集的网页均调用此防范 //由此方法调用cGatherWeb.GetGatherData,做次方法的目的是为了可以处理错误重试 private DataTable GetGatherData(string Url, cGlobalParas.WebCode webCode, string cookie, string startPos, string endPos, string sPath, bool IsAjax) { cGatherWeb gWeb = new cGatherWeb(); gWeb.CutFlag = m_TaskSplitData.CutFlag; DataTable tmpData; int AgainTime = 0; GatherAgain: try { tmpData = gWeb.GetGatherData(Url, m_WebCode, m_Cookie, m_gStartPos, m_gEndPos, m_SavePath, IsAjax); } catch (System.Exception ex) { AgainTime++; if (AgainTime > m_AgainNumber) { if (m_IsErrorLog == true) { //保存出错日志 } throw ex; } else { if (m_Ignore404 == true && ex.Message.Contains("404")) { if (m_IsErrorLog == true) { //保存出错日志 } throw ex; } else { e_Log(this, new cGatherTaskLogArgs(m_TaskID, ((int)cGlobalParas.LogType.Error).ToString() + "网址:" + Url + "访问发生错,错误信息:" + ex.Message + ",等待3秒重试\n", this.IsErrorLog)); Thread.Sleep(3000); e_Log(this, new cGatherTaskLogArgs(m_TaskID, ((int)cGlobalParas.LogType.Warning).ToString() + Url + "正在进行第" + AgainTime + "次重试\n", this.IsErrorLog)); //返回重试 goto GatherAgain; } } } return(tmpData); }
private DataTable GatherTestData(string Url,List<cWebpageCutFlag> gCutFlags, cGlobalParas.WebCode webCode, string cookie, string startPos, string endPos, string sPath, bool IsAjax) { Gather.cGatherWeb gData = new Gather.cGatherWeb(); gData.CutFlag = gCutFlags; DataTable dGather = new DataTable(); try { dGather = gData.GetGatherData(Url, webCode ,cookie ,startPos ,endPos , sPath, IsAjax); } catch (System.Exception ex) { MessageBox.Show(rm.GetString ("Error4") + ex.Message, rm.GetString("MessageboxError"), MessageBoxButtons.OK, MessageBoxIcon.Error); return null; } return dGather; }
//����һ��ͨѶ�Ľӿڷ����������ɼ�����Ĵ����������Ҫ�ɼ�����ҳ�����ô˷��� //�ɴ˷�������cGatherWeb.GetGatherData�����η�����Ŀ����Ϊ�˿��Դ���������� private DataTable GetGatherData(string Url, cGlobalParas.WebCode webCode, string cookie, string startPos, string endPos, string sPath, bool IsAjax) { cGatherWeb gWeb = new cGatherWeb(); gWeb.CutFlag = m_TaskSplitData.CutFlag; DataTable tmpData ; int AgainTime = 0; GatherAgain: try { tmpData = gWeb.GetGatherData(Url, m_WebCode, m_Cookie, m_gStartPos, m_gEndPos, m_SavePath, IsAjax); } catch (System.Exception ex) { AgainTime++; if (AgainTime > m_AgainNumber) { if (m_IsErrorLog == true) { //���������־ } throw ex; } else { if (m_Ignore404 == true && ex.Message.Contains ("404")) { if (m_IsErrorLog == true) { //���������־ } throw ex; } else { e_Log(this, new cGatherTaskLogArgs(m_TaskID, ((int)cGlobalParas.LogType.Error).ToString() + "��ַ��" + Url + "���ʷ������������Ϣ��" + ex.Message + "���ȴ�3������\n", this.IsErrorLog)); Thread.Sleep(3000); e_Log(this, new cGatherTaskLogArgs(m_TaskID, ((int)cGlobalParas.LogType.Warning).ToString() + Url + "���ڽ��е�" + AgainTime + "������\n", this.IsErrorLog)); //�������� goto GatherAgain; } } } return tmpData; }
private void DownloadSoft() { Gather.cGatherWeb gData = new Gather.cGatherWeb(); //���Ӳɼ��ı�־ Task.cWebpageCutFlag c; c = new Task.cWebpageCutFlag(); c.id = 0; c.Title = "�汾"; c.DataType = (int)cGlobalParas.GDataType.File; c.StartPos = "<a href=\""; c.EndPos = "\""; c.LimitSign = (int)cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; DataTable dGather = gData.GetGatherData("http://www.yijie.net/user/soft/updatesoukey.html", cGlobalParas.WebCode.utf8, "", "", "", Program.getPrjPath(),false); dGather = null; gData = null; m_sender.BeginInvoke(m_senderDelegate, new object[] { true }); }
private void GetCopy() { Gather.cGatherWeb gData = new Gather.cGatherWeb(); this.textBox1.Text =rm.GetString ("Info90"); Application.DoEvents(); Old_Copy = Assembly.GetExecutingAssembly().GetName().Version.ToString(); this.textBox1.Text += "\r\n" + rm.GetString("Info91") + Assembly.GetExecutingAssembly().GetName().Version; Application.DoEvents(); this.textBox1.Text += "\r\n" + rm.GetString("Info92"); Application.DoEvents(); SCode = cTool.GetHtmlSource("http://www.yijie.net/user/soft/updatesoukey.html", true); if (SCode == "" || SCode == null) { this.textBox1.Text += "\r\n" + rm.GetString("Info93") + "\r\n" + rm.GetString("Info94"); Application.DoEvents(); return; } this.textBox1.Text += "\r\n" + rm.GetString("Info95") + "\r\n" + rm.GetString("Info96"); Application.DoEvents(); //���Ӳɼ��ı�־ Task.cWebpageCutFlag c; c = new Task.cWebpageCutFlag(); c.id =0; c.Title = "�汾"; c.DataType =(int) cGlobalParas.GDataType.Txt; c.StartPos = "�汾��"; c.EndPos = "</p>"; c.LimitSign =(int) cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; //���Ӱ汾˵���ı�־ c = new Task.cWebpageCutFlag(); c.id = 1; c.Title = "˵��"; c.DataType = (int)cGlobalParas.GDataType.Txt; c.StartPos = "˵����"; c.EndPos = "</p>"; c.LimitSign = (int)cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; DataTable dGather = gData.GetGatherData("http://www.yijie.net/user/soft/updatesoukey.html", cGlobalParas.WebCode.utf8, "", "", "", Program.getPrjPath(),false); New_Copy = dGather.Rows[0][0].ToString(); this.textBox1.Text += "\r\n" + rm.GetString("Info97") + New_Copy; Application.DoEvents(); ///�汾�űȽ���Ҫ�Ƚ��������00.00.00�����а汾�������մ˸�ʽ���������ִ��� ///�Ƚ�˳��Ϊ�����汾->�Ͱ汾��ֻҪ��һ���°汾�Ŵ��ھɰ汾�ţ���ͽ����������� int Old_V; int New_V; for (int i = 0; i < 3; i++) { Old_V=int.Parse ( Old_Copy .Substring(0,Old_Copy .IndexOf ("."))); Old_Copy =Old_Copy .Substring (Old_Copy .IndexOf (".")+1,Old_Copy .Length -Old_Copy .IndexOf (".")-1); New_V = int.Parse(New_Copy.Substring(0, New_Copy.IndexOf("."))); New_Copy = New_Copy.Substring(New_Copy.IndexOf(".")+1, New_Copy.Length - New_Copy.IndexOf(".")-1); if (New_V >Old_V ) { this.textBox1.Text += "\r\n" + rm.GetString("Info98"); Application.DoEvents(); this.textBox1.Text += "\r\n" + dGather.Rows [0][1].ToString (); Application.DoEvents(); gData = null; this.button2.Enabled = true; this.button1.Enabled = true; return; } } this.textBox1.Text += "\r\n" + rm.GetString("Info99"); Application.DoEvents(); this.button1.Enabled = true; }
private void GetCopy() { Gather.cGatherWeb gData = new Gather.cGatherWeb(); this.textBox1.Text = rm.GetString("Info90"); Application.DoEvents(); Old_Copy = Assembly.GetExecutingAssembly().GetName().Version.ToString(); this.textBox1.Text += "\r\n" + rm.GetString("Info91") + Assembly.GetExecutingAssembly().GetName().Version; Application.DoEvents(); this.textBox1.Text += "\r\n" + rm.GetString("Info92"); Application.DoEvents(); SCode = cTool.GetHtmlSource("http://www.yijie.net/user/soft/updatesoukey.html", true); if (SCode == "" || SCode == null) { this.textBox1.Text += "\r\n" + rm.GetString("Info93") + "\r\n" + rm.GetString("Info94"); Application.DoEvents(); return; } this.textBox1.Text += "\r\n" + rm.GetString("Info95") + "\r\n" + rm.GetString("Info96"); Application.DoEvents(); //增加采集的标志 Task.cWebpageCutFlag c; c = new Task.cWebpageCutFlag(); c.id = 0; c.Title = "版本"; c.DataType = (int)cGlobalParas.GDataType.Txt; c.StartPos = "版本:"; c.EndPos = "</p>"; c.LimitSign = (int)cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; //增加版本说明的标志 c = new Task.cWebpageCutFlag(); c.id = 1; c.Title = "说明"; c.DataType = (int)cGlobalParas.GDataType.Txt; c.StartPos = "说明:"; c.EndPos = "</p>"; c.LimitSign = (int)cGlobalParas.LimitSign.NoLimit; gData.CutFlag.Add(c); c = null; DataTable dGather = gData.GetGatherData("http://www.yijie.net/user/soft/updatesoukey.html", cGlobalParas.WebCode.utf8, "", "", "", Program.getPrjPath(), false); New_Copy = dGather.Rows[0][0].ToString(); this.textBox1.Text += "\r\n" + rm.GetString("Info97") + New_Copy; Application.DoEvents(); ///版本号比较需要比较三个界别:00.00.00,所有版本必须遵照此格式,否则会出现错误。 ///比较顺序为:主版本->低版本,只要有一个新版本号大于旧版本号,则就进行升级操作 int Old_V; int New_V; for (int i = 0; i < 3; i++) { Old_V = int.Parse(Old_Copy.Substring(0, Old_Copy.IndexOf("."))); Old_Copy = Old_Copy.Substring(Old_Copy.IndexOf(".") + 1, Old_Copy.Length - Old_Copy.IndexOf(".") - 1); New_V = int.Parse(New_Copy.Substring(0, New_Copy.IndexOf("."))); New_Copy = New_Copy.Substring(New_Copy.IndexOf(".") + 1, New_Copy.Length - New_Copy.IndexOf(".") - 1); if (New_V > Old_V) { this.textBox1.Text += "\r\n" + rm.GetString("Info98"); Application.DoEvents(); this.textBox1.Text += "\r\n" + dGather.Rows [0][1].ToString(); Application.DoEvents(); gData = null; this.button2.Enabled = true; this.button1.Enabled = true; return; } } this.textBox1.Text += "\r\n" + rm.GetString("Info99"); Application.DoEvents(); this.button1.Enabled = true; }