From 43ebf21d35e6837e236dc802f858e8df15c239e6 Mon Sep 17 00:00:00 2001 From: j502647092 Date: Thu, 30 Jul 2015 21:18:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF=E9=87=8D?= =?UTF-8?q?=E8=AF=95=E5=8A=9F=E8=83=BD...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frm_Main.Designer.cs | 126 +++++++++++++++++++++++++------------------ Frm_Main.cs | 14 +++-- 2 files changed, 86 insertions(+), 54 deletions(-) diff --git a/Frm_Main.Designer.cs b/Frm_Main.Designer.cs index b32cf29..6d9817f 100644 --- a/Frm_Main.Designer.cs +++ b/Frm_Main.Designer.cs @@ -28,15 +28,21 @@ /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Frm_Main)); this.SearchView = new System.Windows.Forms.DataGridView(); + this.company = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.keyword = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.百度s = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.必应s = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.搜狗s = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sum = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.ResultView = new System.Windows.Forms.DataGridView(); this.公司名称 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.关键词 = new System.Windows.Forms.DataGridViewTextBoxColumn(); @@ -54,12 +60,8 @@ this.saveFile = new System.Windows.Forms.SaveFileDialog(); this.clearresult = new System.Windows.Forms.Button(); this.clearsearch = new System.Windows.Forms.Button(); - this.company = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.keyword = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.百度s = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.必应s = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.搜狗s = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.sum = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label2 = new System.Windows.Forms.Label(); + this.retry = new System.Windows.Forms.TextBox(); ((System.ComponentModel.ISupportInitialize)(this.SearchView)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ResultView)).BeginInit(); this.SuspendLayout(); @@ -80,6 +82,50 @@ this.SearchView.Size = new System.Drawing.Size(850, 200); this.SearchView.TabIndex = 0; // + // company + // + this.company.HeaderText = "公司网址"; + this.company.Name = "company"; + this.company.Width = 150; + // + // keyword + // + this.keyword.HeaderText = "关键词(用英文逗号隔开)"; + this.keyword.Name = "keyword"; + this.keyword.Width = 330; + // + // 百度s + // + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.百度s.DefaultCellStyle = dataGridViewCellStyle1; + this.百度s.HeaderText = "百度第一页"; + this.百度s.Name = "百度s"; + this.百度s.Width = 90; + // + // 必应s + // + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.必应s.DefaultCellStyle = dataGridViewCellStyle2; + this.必应s.HeaderText = "必应第一页"; + this.必应s.Name = "必应s"; + this.必应s.Width = 90; + // + // 搜狗s + // + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.搜狗s.DefaultCellStyle = dataGridViewCellStyle3; + this.搜狗s.HeaderText = "搜狗第一页"; + this.搜狗s.Name = "搜狗s"; + this.搜狗s.Width = 90; + // + // sum + // + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.sum.DefaultCellStyle = dataGridViewCellStyle4; + this.sum.HeaderText = "总计"; + this.sum.Name = "sum"; + this.sum.Width = 55; + // // ResultView // this.ResultView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; @@ -147,7 +193,7 @@ // // max // - this.max.Location = new System.Drawing.Point(663, 10); + this.max.Location = new System.Drawing.Point(663, 4); this.max.Name = "max"; this.max.Size = new System.Drawing.Size(83, 21); this.max.TabIndex = 3; @@ -156,7 +202,7 @@ // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(592, 13); + this.label1.Location = new System.Drawing.Point(592, 7); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(65, 12); this.label1.TabIndex = 7; @@ -218,54 +264,30 @@ this.clearsearch.UseVisualStyleBackColor = true; this.clearsearch.Click += new System.EventHandler(this.clearsearch_Click); // - // company + // label2 // - this.company.HeaderText = "公司网址"; - this.company.Name = "company"; - this.company.Width = 150; + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.SystemColors.ControlLight; + this.label2.Location = new System.Drawing.Point(592, 34); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(65, 12); + this.label2.TabIndex = 14; + this.label2.Text = "失败重试: "; // - // keyword + // retry // - this.keyword.HeaderText = "关键词(用英文逗号隔开)"; - this.keyword.Name = "keyword"; - this.keyword.Width = 330; - // - // 百度s - // - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.百度s.DefaultCellStyle = dataGridViewCellStyle1; - this.百度s.HeaderText = "百度第一页"; - this.百度s.Name = "百度s"; - this.百度s.Width = 90; - // - // 必应s - // - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.必应s.DefaultCellStyle = dataGridViewCellStyle2; - this.必应s.HeaderText = "必应第一页"; - this.必应s.Name = "必应s"; - this.必应s.Width = 90; - // - // 搜狗s - // - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.搜狗s.DefaultCellStyle = dataGridViewCellStyle3; - this.搜狗s.HeaderText = "搜狗第一页"; - this.搜狗s.Name = "搜狗s"; - this.搜狗s.Width = 90; - // - // sum - // - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.sum.DefaultCellStyle = dataGridViewCellStyle4; - this.sum.HeaderText = "总计"; - this.sum.Name = "sum"; - this.sum.Width = 55; + this.retry.Location = new System.Drawing.Point(663, 31); + this.retry.Name = "retry"; + this.retry.Size = new System.Drawing.Size(83, 21); + this.retry.TabIndex = 13; + this.retry.Text = "3"; // // Frm_Main // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.ClientSize = new System.Drawing.Size(872, 603); + this.Controls.Add(this.label2); + this.Controls.Add(this.retry); this.Controls.Add(this.clearsearch); this.Controls.Add(this.clearresult); this.Controls.Add(this.readin); @@ -315,6 +337,8 @@ private System.Windows.Forms.DataGridViewTextBoxColumn 必应s; private System.Windows.Forms.DataGridViewTextBoxColumn 搜狗s; private System.Windows.Forms.DataGridViewTextBoxColumn sum; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox retry; } } diff --git a/Frm_Main.cs b/Frm_Main.cs index 790e4e8..efe2a58 100644 --- a/Frm_Main.cs +++ b/Frm_Main.cs @@ -99,16 +99,24 @@ namespace SEOKeywordSearch { if (item.Cells[s.ToString() + "s"].Value == null) item.Cells[s.ToString() + "s"].Value = 0; + state.ForeColor = Color.Black; state.Text = "正在 " + s.ToString() + " 查询 " + cpy + " 的关键词 " + key; for (int i = 1; i <= maxpage; i++) { string url = String.Format(UrlEnum.GetUrl(s), HttpUtility.UrlEncode(key), (s.ToString() == "搜狗" ? i : i - 1));//s搜狗的页面值不同 this.ResultView.Rows[index].Cells[s.ToString() + "r"].Value = "查询第" + i + "页..."; Application.DoEvents(); - httpHelper.Send(HttpMethod.GET, url); - while (httpHelper.readyState != HttpReadyState.完成) + for (int k = 1; k < int.Parse(retry.Text); k++) { - Application.DoEvents(); + httpHelper.Send(HttpMethod.GET, url); + while (httpHelper.readyState != HttpReadyState.完成) + { + Application.DoEvents(); + } + if (!(string.IsNullOrEmpty(httpHelper.responseBody) || httpHelper.responseBody.StartsWith("0"))) + break; + state.ForeColor = Color.Red; + state.Text = "关键词 " + key + " 在 " + s.ToString() + " 第 " + i + " 页 网页抓取失败 重试第 " + k + " 次"; } string htmldoc = httpHelper.responseBody; if (string.IsNullOrEmpty(htmldoc))