天天看點

c#網頁資料抓取/asp.net網頁資料抓取

/// <summary>

        /// 擷取遠端頁面資料

        /// </summary>

        /// <param name="url"></param>

        /// <returns></returns>

        public string getWebPageData(string RemoteURL, Encoding EncodingType)

        {

            WebClient WC = new WebClient();

            WC.Credentials = CredentialCache.DefaultCredentials;

            WebRequest webRequest = null;

            try

            {

                webRequest = HttpWebRequest.Create(RemoteURL);

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

                return "";

            }

            HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

            Stream stream = webResponse.GetResponseStream();

            byte[] htmlByte = GetByteContent(stream);

            string pageHtml = EncodingType.GetString(htmlByte);

            return pageHtml;

        }

        private byte[] GetByteContent(Stream stream)

        {

            ArrayList arBuffer = new ArrayList();

            byte[] buffer = new byte[1024];

            int offset = 1024;

            int count = stream.Read(buffer, 0, offset);

            while (count > 0)

            {

                for (int i = 0; i < count; i++)

                {

                    arBuffer.Add(buffer[i]);

                }

                count = stream.Read(buffer, 0, offset);

            }

            stream.Close();

            return (byte[])arBuffer.ToArray(System.Type.GetType("System.Byte"));

        }