1

我正在尝试构建一个应用程序,该应用程序通过代理访问某个网站(来自文本框)x 次(也来自文本框)。我遇到的问题是将代理列表放入程序并在 webBrowser 控件中使用它。这是我到目前为止所拥有的。任何帮助表示赞赏。谢谢。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Permissions;
using Microsoft.Win32;
using System.Diagnostics;
using System.Threading;
using System.IO;
using System.Net;

namespace LetsBot
{
    public partial class TrafficBot : Form
    {
        public TrafficBot()
        {
            InitializeComponent();
        }

        private void btnClear_Click(object sender, EventArgs e)
        {
            this.txtURL.Clear();
            this.txtProxy.Clear();
            this.txtURL.Focus();
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            this.lblBrowsing.Show();
            this.btnStart.Enabled = false;

            int n = Convert.ToInt32(this.txtNumVisits.Text);
            for (int i = 0; i < n; i++)
            {
                string url = this.txtURL.Text;
                this.webBotBrowser.Navigate(url);
                while (webBotBrowser.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                string PageText = this.webBotBrowser.DocumentText.ToString();
                Thread.Sleep(5000);                
            }            
        }       

        private void btnStop_Click(object sender, EventArgs e)
        {
            this.btnStart.Enabled = true;
            this.webBotBrowser.Stop();
            this.txtURL.Focus();          
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Exit Traffic Bot?", "Don't Let Me Go!", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                Application.Exit();
            }
            else if (dialogResult == DialogResult.No)
            {

            }

        }

        private void webBotBrowser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {

            if (e.CurrentProgress > 0)
            {
                ProgressBar.Value = (int)(e.CurrentProgress / e.MaximumProgress * 100);

            }
        }

        private List<string> getProxyListFromText(string input)
        {
            List<string> list = new List<string>();
            StreamReader reader = new StreamReader(input);
            string item = "";
            while (item != null)
            {
                item = reader.ReadLine();
                if (item != null)
                {
                    list.Add(item);
                }
            }
            reader.Close();
            return list;

            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                object url;
                WebClient wc;
                url = this.txtURL.Text;
                wc = new WebClient();

                //This should come from the proxy list
                foreach (string prox in getProxyListFromText("Proxies.txt"))
                {
                    wc.Proxy = new WebProxy(prox);

                    var page = wc.DownloadString(url.ToString());
                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    doc.LoadHtml(page);
                    var pplname = doc.DocumentNode.SelectNodes("/html/body/div[3]/div/div[2]/div[2]/div/div[4]/p");
                }
            }
        }
    }
}
4

0 回答 0