C#的webbrouse循环访问网址

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;


using System.Threading;

namespace Quick
{
    public partial class FormMain : Form
    {
        HtmlElementCollection link;
        Boolean flag;
        Boolean loading;
        public FormMain()
        {
            InitializeComponent();
        }

        private void buttonStart_Click(object sender, EventArgs e)
        {
            flag = false;
            loading=true;
            //循环执行任务

            for (int page = 1; page <= 4;page++)
            {
                while(loading)
                {
                    loading = false;
                    this.webBrowser.Navigate("http://www.haosou.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=12&pn="+page);
                    this.webBrowser.ScriptErrorsSuppressed = true;

                    if (flag)
                        break;
                }
               
            }
                

        }

        private void FormMain_Load(object sender, EventArgs e)
        {

            //System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            //ThreadStart是一个无参无返回值的委托。
            //ThreadStart ts = new ThreadStart(task);
            //初始化Thread的新实例,并通过构造方法将委托ts做为参数赋初始值。
            //Thread td = new Thread(ts);   //需要引入System.Threading命名空间
            //运行委托
            //td.Start();

            //循环执行任务
            //while (true)
            //{
               // flag = false;
               // this.webBrowser.Navigate("http://www.haosou.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=台湖");
               // this.webBrowser.ScriptErrorsSuppressed = true;
                //等待10S,等待页面加载完成
                //Thread.Sleep(10000);



                //停止20S,进行下一个任务
               // Thread.Sleep(20000);

          //  }
            
           
        }

        public void task()
        {
            //循环执行任务
            while (true)
            {
                flag = false;
                this.webBrowser.Navigate("http://www.haosou.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=12");
                this.webBrowser.ScriptErrorsSuppressed = true;
                //等待10S,等待页面加载完成
                Thread.Sleep(10000);

                

                //停止20S,进行下一个任务
                Thread.Sleep(20000);

            }
        }

        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {/*
                    foreach (HtmlElement archor in this.webBrowser.Document.Links)
                    {
                        archor.SetAttribute("target", "_self");
                    }
                    foreach (HtmlElement form in this.webBrowser.Document.Forms)
                    {
                        form.SetAttribute("target", "_self");
                    }

                    link = this.webBrowser.Document.GetElementsByTagName("a");
                    for (int ii = 0; ii < link.Count; ii++)
                    {
                        if (link[ii].GetAttribute("href").Contains("www.xingzuowu.com"))
                        {

                            link[ii].InnerHtml = "<font color=\"red\" size=4>" + link[ii].InnerHtml + "</font>";

                            link[ii].InvokeMember("click");
                            //已经找到,退出循环
                            break;
                        }
                    }

                    loading = true;*/
        }


        bool load = true;   //该变量表示网页是否正在加载.
        string html = string.Empty;
       
        private void buttonLoop_Click(object sender, EventArgs e)
        {
            String[] urls = { "http://www.haosou.com/s?q=12&pn=1", "http://www.haosou.com/s?q=12&pn=2", "http://www.haosou.com/s?q=12&pn=3" };
            webBrowser.Navigated += new WebBrowserNavigatedEventHandler(webBrowser_Navigated);
            foreach (string url in urls)
            {
                load = true;  //表示正在加载
                webBrowser.Navigate(url);
                this.webBrowser.ScriptErrorsSuppressed = true;
                
                while (load)
                {
                    Application.DoEvents();//等待本次加载完毕才执行下次循环.
                }
            }
        }


        void webBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            
                html = webBrowser.DocumentText;  //获取到的html.
                MessageBox.Show(html);
                load = false;//在加载完成后,将该变量置为false,下一次循环随即开始执行.

        }
    }
}


效果是:在完成第一个网页后,再对第二个网页进行访问,测试成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值