我想解析单击搜索按钮后出现的表格,然后过滤一些数据。我怎么能这样做?
该网站为ruspo.ru
我的代码是:
HttpWebRequest webRequest = WebRequest.Create("http://ruspo.ru/") as HttpWebRequest;
StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream());
string responseData = responseReader.ReadToEnd();
responseReader.Close();
webRequest.GetResponse().Close();
MatchCollection m1 = Regex.Matches(responseData, @"(?<=<table class=""ui-widget ui-widget-content""[^>]*>).*?(?=</div>)", RegexOptions.Singleline);
foreach (Match m in m1)
{
Response.Write(m.ToString());
//txtPrice.Text = m.ToString();
//ddlhotels.Text = m.ToString();
}
答案 0 :(得分:0)
嗯,这并不像阅读现有页面那么简单。搜索结果很可能落后于某种POST,因此您必须对POST数据的外观进行反向工程,自己执行POST,然后阅读结果。
另外,使用Regex to parse HTML is not recommended。您应该使用HtmlAgilityPack,它提供实际的DOM支持,并允许您对文档结构执行XPath查询。
var doc = new HtmlDocument();
doc.Load(new StringReader(responseData));
var nodes = doc.DocumentNode.SelectNodes("//div");
foreach (HtmlNode link in nodes)
{
string title = link.InnerText.Trim();
// etc.
}