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;
}
}