public void Search2() { Method md = new Method(); try { int page = 50; if (textBox5.Text.Trim() == "") { MessageBox.Show("请输入关键字!"); return; } string city = comboBox1.SelectedItem.ToString(); string[] keywords = textBox5.Text.Trim().Split(new string[] { "," }, StringSplitOptions.None); string[] areas = textBox4.Text.Trim().Split(new string[] { "," }, StringSplitOptions.None); foreach (string keyword in keywords) { foreach (string area in areas) { // string html1 = meituan_GetUrl("http://i.meituan.com/s/" + Getpinyin(city) + "-" + keyword + "?p=1"); if (checkBox1.Checked == true) { this.Rxg0 = @"title:([\s\S]*?);"; this.Rxg1 = @"""phone"":""([\s\S]*?)"""; } else { this.Rxg0 = @"<h1 class=""dealcard-brand"">([\s\S]*?)</h1>"; this.Rxg1 = @"data-tele=""([\s\S]*?)"""; } for (int i = 1; i <= page; i++) { String Url = "http://i.meituan.com/s/" + Getpinyin(city) + "-" + keyword + "?bid=" + area + "&p=" + i; string strhtml = meituan_GetUrl(Url, this.cookie); //定义的GetRul方法 返回 reader.ReadToEnd() string Rxg = @"data-href=""//i.meituan.com/poi/([\s\S]*?)"">"; MatchCollection all = Regex.Matches(strhtml, Rxg); ArrayList lists = new ArrayList(); foreach (Match NextMatch in all) { lists.Add("http://i.meituan.com/poi/" + NextMatch.Groups[1].Value); } if (lists.Count == 0) //当前页没有网址数据跳过之后的网址采集,进行下个foreach采集 { break; } string tm1 = DateTime.Now.ToString(); //获取系统时间 textBox3.Text = tm1 + "-->正在采集" + city + "" + keyword + "第" + i + "页" + "\r\n"; foreach (string list in lists) { int index = this.dataGridView1.Rows.Add(); //利用dataGridView1.Rows.Add()事件为DataGridView控件增加新的行,该函数返回添加新行的索引号,即新行的行号,然后可以通过该索引号操作该行的各个单元格,如dataGridView1.Rows[index].Cells[0].Value = "1"。这是很常用也是很简单的方法。 String Url1 = list; string strhtml1 = meituan_GetUrl(Url1, this.cookie); //定义的GetRul方法 返回 reader.ReadToEnd() string Rxg2 = @"addr:([\s\S]*?)&"; Match name = Regex.Match(strhtml1, Rxg0); Match tell = Regex.Match(strhtml1, Rxg1); Match addr = Regex.Match(strhtml1, Rxg2); this.dataGridView1.Rows[index].Cells[0].Value = index; this.dataGridView1.Rows[index].Cells[1].Value = name.Groups[1].Value; this.dataGridView1.Rows[index].Cells[2].Value = tell.Groups[1].Value; this.dataGridView1.Rows[index].Cells[3].Value = addr.Groups[1].Value; this.dataGridView1.Rows[index].Cells[4].Value = city; Method.EachToData(dataGridView1, index); this.dataGridView1.CurrentCell = this.dataGridView1.Rows[index].Cells[0]; //让datagridview滚动到当前行 //if (this.skinDataGridView1.Rows[index].Cells[1].Value.ToString().Contains("-"))//如果表格值包含“-”则。。。 //{ // skinDataGridView1.Rows.RemoveAt(index); //} while (this.zanting == false) { Application.DoEvents();//如果loader是false表明正在加载,,则Application.DoEvents()意思就是处理其他消息。阻止当前的队列继续执行。 } Application.DoEvents(); Thread.Sleep(1000); } } } } } catch (System.Exception ex) { textBox3.Text = ex.ToString(); } }