如何抓取网页中的实时监测数据进行分析
2013-05-29 19:21
731 查看
使用wpf做了窗体,跟Silverlight开发环境一样,将前台设计与后台开发逻辑分离开来,抓取南京市九个PM 2.5监测站点的数据
前台代码:
前台代码:
<Grid> <Button Content="数据获取" Height="23" HorizontalAlignment="Left" Margin="487,23,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> <DataGrid AutoGenerateColumns="False" Height="338" HorizontalAlignment="Left" Margin="0,57,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="591" CanUserAddRows="False"> <DataGrid.Columns> <DataGridTextColumn Header="名称" IsReadOnly="True" Binding="{Binding Name,Mode=TwoWay}" Width="200" /> <DataGridTextColumn Header="PM2.5浓度" IsReadOnly="True" Binding="{Binding Density,Mode=TwoWay}" Width="200"/> </DataGrid.Columns> </DataGrid> <Label Content="网址:" Height="28" HorizontalAlignment="Left" Margin="29,23,0,0" Name="label1" VerticalAlignment="Top" /> <TextBox Height="23" HorizontalAlignment="Left" Margin="88,25,0,0" Name="textBox1" VerticalAlignment="Top" Width="362" /> </Grid>后台代码:
class MonitorInfo { public string Name{get;set;} public string Density{get;set;} }; List<MonitorInfo> myListString=new List<MonitorInfo>(); private string GetWebContent(string Url) { string strResult = ""; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url); //声明一个HttpWebRequest请求 request.Timeout = 30000; //设置连接超时时间 request.Headers.Set("Pragma", "no-cache"); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream streamReceive = response.GetResponseStream(); Encoding encoding = Encoding.GetEncoding("GB2312"); StreamReader streamReader = new StreamReader(streamReceive, encoding); strResult = streamReader.ReadToEnd(); } catch { System.Windows.Forms.MessageBox.Show("出错"); } return strResult; } private void button1_Click(object sender, RoutedEventArgs e) { textBox1.Text="http://www.pm2d5.com/city/nanjing.html"; String Url = textBox1.Text; string strWebContent = GetWebContent(Url); int divIndex = strWebContent.IndexOf("weilai"); int tableStartIndex = strWebContent.IndexOf("<table", divIndex); int tableEndIndex = strWebContent.IndexOf("</table>", tableStartIndex); string strWeb = strWebContent.Substring(tableStartIndex, tableEndIndex - tableStartIndex + 8); //生成HtmlDocument WebBrowser web = new WebBrowser(); web.Navigate("about:blank"); HtmlDocument htmldoc = web.Document.OpenNew(true); htmldoc.Write(strWeb); HtmlElementCollection htmlTR = htmldoc.GetElementsByTagName("tr"); int i = 0; myListString.Clear(); foreach (HtmlElement tr in htmlTR) { if (i == 0) { i++; continue;//跳过表头 } MonitorInfo monitorInfo = new MonitorInfo(); monitorInfo.Name = tr.GetElementsByTagName("td")[0].InnerText.ToString(); monitorInfo.Density = tr.GetElementsByTagName("td")[3].InnerText.ToString(); myListString.Add(monitorInfo); } dataGrid1.ItemsSource = myListString; } }在MonitorInfo这个类的设计中,注意使用get,set,否则将List数据绑定到DataGrid后会出现空白行
相关文章推荐
- 如何抓取网页数据、分析并且去除Html标签C#(转载)
- 如何抓取网页数据、分析并且去除Html标签(C#)
- C#如何抓取网页数据、分析并且去除Html标签
- 如何抓取网页数据、分析并且去除Html标签(C#)
- 如何抓取网页数据、分析并且去除Html标签(C#)
- 抓取网页中的内容、如何解决乱码问题、如何解决登录问题以及对所采集的数据进行处理显示的过程
- 如何对ajax型的网页数据进行抓取
- 诸葛告诉你如何进行数据分析
- 如何正确进行数据分析
- 如何通过网站优化对网站数据进行分析
- 2016太原网络营销师如何对百度竞价的数据进行分析,讲解技巧?
- 抓取Web网页数据分析(c#)
- 如何用Python爬数据?(一)网页抓取
- 用elasticsearch和kibana 进行简单的实时数据报表分析
- 如何使用代理IP进行数据抓取,PHP爬虫抓取亚马逊商品数据
- 抓取Web网页数据分析
- Python 抓取欧洲足球联赛数据进行大数据分析
- Tomcat源码分析 之 Tomcat如何监测部署应用的改变并进行重新部署
- 如何利用数据挖掘进行分析的方法
- 抓取Web网页数据分析