在“
WinForm制作定时显示基金净值的桌面小工具”一文中,是利用HtmlAgilityPack解析抓取的html源代码,还有下面另一种方法,最终得到的结果是一样的:
分析http://fund.eastmoney.com/000167.html的源代码,
找到
<script type="text/javascript">
var fundcode = '000167';
var fundname = '广发聚优灵活配置混合';
var fundtype = '002';
</script>
在其中一个JS链接http://j5.dfcfw.com/js/pinzhong/pzdefault_20131218105522.js中找到
function reGetGZ(code) {
JsLoader("http://fund.eastmoney.com/data/funddataforgznew.aspx?t=basewap&cb=jsonp&fc=" + code + "&rt=" + new Date().getTime(), "utf-8", function () {
});
}
把里面的链接加入参数和随机数得到
http://fund.eastmoney.com/data/funddataforgznew.aspx?t=basewap&cb=jsonp&fc=000167&rt=1000000
在浏览器中输入得到:
jsonp({"fundcode":"000167","name":"广发聚优灵活配置混合","jzrq":"2014-03-06","dwjz":"1.1750","gsz":"1.1749","gszzl":"-0.01","gztime":"2014-03-07 15:00"});
这种不是标准的JSON格式,要转为标准的JSON格式,开始和结束的字符需要处理为:
[{"fundcode":"000167","name":"广发聚优灵活配置混合","jzrq":"2014-03-06","dwjz":"1.1750","gsz":"1.1749","gszzl":"-0.01","gztime":"2014-03-07 15:00"}]
这样在C#中才能利用内置的JavaScriptSerializer来序列化和反序列化
建立一个对应上面JSON的类文件:
public class Fund
{
public string Fundcode { ge
分析http://fund.eastmoney.com/000167.html的源代码,
找到
<script type="text/javascript">
var fundcode = '000167';
var fundname = '广发聚优灵活配置混合';
var fundtype = '002';
</script>
在其中一个JS链接http://j5.dfcfw.com/js/pinzhong/pzdefault_20131218105522.js中找到
function reGetGZ(code) {
JsLoader("http://fund.eastmoney.com/data/funddataforgznew.aspx?t=basewap&cb=jsonp&fc=" + code + "&rt=" + new Date().getTime(), "utf-8", function () {
});
}
把里面的链接加入参数和随机数得到
http://fund.eastmoney.com/data/funddataforgznew.aspx?t=basewap&cb=jsonp&fc=000167&rt=1000000
在浏览器中输入得到:
jsonp({"fundcode":"000167","name":"广发聚优灵活配置混合","jzrq":"2014-03-06","dwjz":"1.1750","gsz":"1.1749","gszzl":"-0.01","gztime":"2014-03-07 15:00"});
这种不是标准的JSON格式,要转为标准的JSON格式,开始和结束的字符需要处理为:
[{"fundcode":"000167","name":"广发聚优灵活配置混合","jzrq":"2014-03-06","dwjz":"1.1750","gsz":"1.1749","gszzl":"-0.01","gztime":"2014-03-07 15:00"}]
这样在C#中才能利用内置的JavaScriptSerializer来序列化和反序列化
建立一个对应上面JSON的类文件:
public class Fund
{
public string Fundcode { ge