C#+HtmlAgilityPack+XPatSF传奇网页版h带你采集数据(以采集天气数据为例子)(3)
作者:私服传奇网页版 来源:www.szlyw.com.cn 点击:172
这也是最重要核心的一个要分析的页面。我们以大连市2011年8月份为例:,我们要找到我们需要采集的信息节点,如下图所示的动画演示,其实这个过程习惯几次就好了,每一次点击节点后,要观察右边的内容是不是我们想要的,还可以通过滚动条的长度判断大概的长度。
这里不是直接从URL加载,由于编码原因,URL加载会有乱码,所以我是手动辅助源代码到HAPExplorer中的,效果一样,所以直接在获取页面源代码的时候,要注意编码问题。总的过程比较简单,还是查找到Table标签的位置,因为那里保存了所需要的数据,每一行每一列都非常标准。过程类似,我们直接更加XPath找到Table,然后一次获取每行,每列,进行对应即可,看代码,都进行了详细的注释:
/// <summary>采集单个城市单个月的历史天气数据</summary> /// <param name="cityCode">城市拼音代码</param> /// <param name="year">年份</param> /// <param name="month">月份</param> public static void ParsePageByCityMonth(String cityCode, Int32 year, Int32 month) { //更加拼音代码,月份信息构造URL String url = String.Format("http://www.tianqihoubao.com/lishi/{0}/month/{1}{2:D2}.html", cityCode, year, month); //获取该链接的源代码 var docText = HtmlHelper.GetWebClient(url); //加载源代码,获取页面结构对象 var doc = new HtmlDocument(); doc.LoadHtml(docText); //更加Xpath获取表格对象 var res = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[2]/div[6]/div[1]/div[1]/table[1]"); if (res != null) { //获取所有行 var list = res.SelectNodes(@"tr"); list.RemoveAt(0);//移除第一行,是表头 // 遍历每一行,获取日期,以及天气状况等信息 foreach (var item in list) { var dd = item.SelectNodes(@"td"); //日期 - - 气温 - 风力风向 if (dd.Count != 4) continue; //获取当前行日期 var date1 = dd[0].InnerText.Replace("\r\n", "").Replace(" ", "").Trim(); //获取当前行天气状况 var tq = dd[1].InnerText.Replace("\r\n", "").Replace(" ", "").Trim(); //获取当前行气温 var qw = dd[2].InnerText.Replace("\r\n", "").Replace(" ", "").Trim(); //获取当前行风力风向 var fx = dd[3].InnerText.Replace("\r\n", "").Replace(" ", "").Trim(); //输出 Console.WriteLine("{0}:{1},{2},{3}", date1, tq, qw, fx); } } }我们调用大连市2011年8月的记录:ParsePageByCityMonth("dalian",2011,8); 结果如下:
至于其他页面都是这个思路,先分析xpath,再获取对应的信息。熟悉几次后应该会快很多的。HtmlAgilityPack里面的方法用多了,自己用对象浏览器查看一些,会一些基本的就可以解决很多问题。
另外,很多网页都是直接输出json数据,对json数据的处理我写过一篇文章,可以参考下,纯手工打造的解析json:用原始方法解析复杂字符串,json一定要用JsonMapper么?
4.资源HTML解析利器HtmlAgilityPack
HtmlAgilityPack 之 HtmlNode类
网易新闻页面信息抓取 -- htmlagilitypack搭配scrapysharp
C#类似Jquery的html解析类HtmlAgilityPack基础类介绍及运用
我把分析HAPExplorer 工具共享一些吧,,这里下载:HtmlAgilityPack分析工具.rar
……点击排行
- 美媒担忧中美发生太空战美或被打回二战时代
- 魔兽一周囧闻:小阿回来,小沈阳
- 绿甲并非坦克首选:魔抗装到底该怎么出
- 有大翅膀的王大锤 韩服DNF圣职者二觉开放
- 无锡三位绣娘拜师顾青蛟 再接再厉让锡绣流传
- 新大话2:新专利减少排队时间 移动版研发中
- 《传奇页游SF4》完全流程攻略一(PS2)
- 玩玩手机版传奇sf变态版下载【官方安卓版】
- Yallacompare将利用区块链及3D打印技术跨界打造完全自动驾驶汽车
- 习近平举行仪式欢迎传奇sf网页游戏厄瓜多尔总统访华并同其举行会
- 美华裔警察执勤时开轻变私服传奇枪打死偷车嫌疑人 却被起诉了
- “历史的记忆”展超变态传奇私服览记载中美共同抗击侵略者事迹
- 望海楼:擦清超变态传奇私服历史镜子 走好未来的路
- 刘诗诗王千源《网页版SF传奇》什传奇私服么时候播出? 《 网页版
- SF传奇网页游戏好友超变态私服传奇组队模式怎么玩?高手速成攻略
最新更新的文章
- 美媒担忧中美发生太空战美或被打回二战时代
- 魔兽一周囧闻:小阿回来,小沈阳
- 绿甲并非坦克首选:魔抗装到底该怎么出
- 有大翅膀的王大锤 韩服DNF圣职者二觉开放
- 无锡三位绣娘拜师顾青蛟 再接再厉让锡绣流传
- 新大话2:新专利减少排队时间 移动版研发中
- 《传奇页游SF4》完全流程攻略一(PS2)
- 玩玩手机版传奇sf变态版下载【官方安卓版】
- Yallacompare将利用区块链及3D打印技术跨界打造
- 习近平举行仪式欢迎传奇sf网页游戏厄瓜多尔总统
- 美华裔警察执勤时开轻变私服传奇枪打死偷车嫌疑
- “历史的记忆”展超变态传奇私服览记载中美共同
- 望海楼:擦清超变态传奇私服历史镜子 走好未来的
- 刘诗诗王千源《网页版SF传奇》什传奇私服么时候
- SF传奇网页游戏好友超变态私服传奇组队模式怎么