一.这是目标地址:http://www.chinaports.com/tidal==>这个红色框框的是我想读取的数据
二.首先我们分析一下这个网页的
查看网页源码,可以知道:
- 顶部的数据是可以直接通过html节点获取的
- 底部的数据应该是动态绑定的数据:
-
分析网页的数据,发现最下面的<script></script>中有如下的数据:
- 那一切就变得简单了。看看如下操作:
- 获取国家列表:http://www.chinaports.com/getCountryList?parentcode=id [通过州的id获取州下面的所有国家]
- 获取省份列表:http://www.chinaports.com/getProvinceList?parentcode=id [通过国家的id获取国家下的省,注意:可能只有中国下才有省,其他都是联邦制国家,没有省,所以直接到港口]
- 获取港口列表:http://www.chinaports.com/getPortByProvince?parentcode=id [通过州的id获取省下面的所有港口]
- 获取潮汐列表:http://www.chinaports.com/tidal/2019/6/17/133 [2019/6/17是查询的日期,133是港口的ID]
- 通过请求获取潮汐列表的数据:
- 获取顶部数据:采用了 HtmlAgilityPack进行节点取值(使用xpath)语法很简单
- 获取底部的数据:采用正则获取值
- 取出了数据,在绑定我重新的窗口中来:
- 窗口的左边用的是chart控件
- 窗口的右边是抓取的数据集合
三.我用窗口来重写网页的查询功能(最终效果如下):
四.需要源码,可以私信我!!!