获取指定网站数据

          public void GetStockList()

          {

               url = aibosha1 + aibosha2;

                List<string> list = new List<string>();
                while (list.Count == 0)
                {
                    string str2 = GetHtmlExX(url, "", "");
                    string strRegexR = @"(?<=<tr)([\s\S]*?)(?=</tr>)"; //构造解析表格数据的正则表达式
                    string strRegexD = @"sh60\d*|sz00\d*|sz30\d*";
                    Regex regexR = new Regex(strRegexR);
                    MatchCollection mcR = regexR.Matches(str2); //执行匹配
                    foreach (Match mr in mcR)
                    {
                        Regex regexD = new Regex(strRegexD);
                        MatchCollection mcD = regexD.Matches(mr.Groups[0].ToString()); //执行匹配
                        string Mydata = "";
                        for (int i = 0; i < mcD.Count; i++)
                        {
                            Mydata += mcD[i].Value + " ";
                        }
                        list.Add(Mydata);

                    }

               }



        private static string GetHtmlExX(string strUrl, string strReferer, string strCookies)
        {
            try
            {
                HttpWebRequest req;
                HttpWebResponse res = GetHttpWebResponseNoRedirect(strUrl, strReferer, strCookies, out req);
                while (res.StatusCode == HttpStatusCode.Found)
                {
                    strUrl = res.Headers[HttpResponseHeader.Location];
                    strCookies = res.Headers[HttpResponseHeader.SetCookie];
                    res.Close();
                    req.Abort();
                    res = GetHttpWebResponseNoRedirect(strUrl, strReferer, strCookies, out req);
                }
                Stream responseStream = res.GetResponseStream();
                StreamReader streamReader = new StreamReader(responseStream);
                string html = streamReader.ReadToEnd();
                streamReader.Close();
                responseStream.Close();
                res.Close();
                req.Abort();
                return html;
            }
            catch (Exception e)
            {
                string msg = e.Message;
                return "";
            }
        }



        private  static HttpWebResponse GetHttpWebResponseNoRedirect(string strUrl, string strReferer, string strCookies, out HttpWebRequest request)
        {
            HttpWebRequest req = null;
            try
            {
                req = HttpWebRequest.Create(strUrl) as HttpWebRequest;
                if (!string.IsNullOrEmpty(strCookies))
                    req.Headers[HttpRequestHeader.Cookie] = strCookies;
                req.ContentType = "contentType";
                req.ServicePoint.ConnectionLimit = 50;
                if (!string.IsNullOrEmpty(strReferer))
                    req.Referer = strReferer;
                req.Accept = "accept";
                req.UserAgent = "userAgent";
                req.Method = "GET";
                req.Timeout = 15000;
                req.AllowAutoRedirect = false;
                HttpWebResponse res = req.GetResponse() as HttpWebResponse;
                request = req;
                return res;
            }
            catch
            {
                if (req != null) req.Abort();
                request = null;
                return null;
            }
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值