使用 C# 采集网站返回的json数据

1、雪球网数据接口使用说明:
https://xueqiu.com/stock/forchartk/stocklist.json?symbol=代码&period=1day&type=复权还是不复权&begin=开始时间时间戳&end=结束时间时间戳&_=结束时间时间戳
地址参数:上海股票在编号前加SH,深圳股票,在编号前加SZ,period代表的时间间隔,复权不复权使用after和before表示,开始时间和结束时间要用时间戳表示。
注意访问下面的网址前要先点击https://xueqiu.com/,进入一次官网,然后在http头中才能记录你的数据,然后才能通过下面的网址获取数据。
2、网址例子、https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600756&period=1day&type=before&begin=1478620800000&end=1510126200000&_=1510126200000
3、要求:使用C#完成获取雪球网json数据,需要给出测试结果,demo给出的结果只要symbol(股票代码)volume、open即可

6个回答

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Web.Script.Serialization;

namespace Q695687
{
    [Serializable]
    class MyStock
    {
        public string symbol { get; set; }
    }

    [Serializable]
    class MyItem
    {
        public string volume { get; set; }
        public string open { get; set; }
    }

    [Serializable]
    class MyJson
    {
        public MyStock stock { get; set; }
        public string success { get; set; }
        public List<MyItem> chartlist { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            WebRequest req = HttpWebRequest.Create("https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600756&period=1day&type=before&begin=1478620800000&end=1510126200000&_=1510126200000");
            req.Method = "GET";
            req.Headers.Add("Cookie: aliyungf_tc=AQAAAHToHii4UgkA+PHteUhWTRZyq+2m; xq_a_token=aef774c17d4993658170397fcd0faedde488bd20; xq_a_token.sig=F7BSXzJfXY0HFj9lqXif9IuyZhw; xq_r_token=d694856665e58d9a55450ab404f5a0144c4c978e; xq_r_token.sig=Ozg4Sbvgl2PbngzIgexouOmvqt0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1532446045; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1532446045; u=941532446046068; device_id=ed69614fd948813e0ee1aab73abcdd13");
            var r = req.GetResponse();
            var stream = r.GetResponseStream();
            var reader = new StreamReader(stream, Encoding.UTF8);
            string json = reader.ReadToEnd();
            JavaScriptSerializer jss = new JavaScriptSerializer();
            MyJson result = jss.Deserialize<MyJson>(json);
            Console.WriteLine(result.stock.symbol);
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("\t" + result.chartlist[i].volume + " " + result.chartlist[i].open);
            }
            Console.WriteLine("\t" + "...");
        }
    }
}

图片说明

wuwei2_00_8
Tom20081 已经采纳了,有空帮忙给一下获取cookie的代码吧,谢谢了
大约一年之前 回复
wuwei2_00_8
Tom20081 谢谢 我先看看
大约一年之前 回复
showbo
支付宝加好友偷能量挖 正解。。。~
大约一年之前 回复

作为演示,这里cookie获取我是写死的,你要看到运行效果,需要自己去抓cookie,方法如下:
图片说明

用程序获取cookie这个你可以自己搜索下,如果搞不定的话,采纳本回答,我可以详细写给你。另外还可以给你写一个时间/时间戳数字的转换的代码。

wuwei2_00_8
Tom20081 帮忙把采集cookie的代码发一下吧
大约一年之前 回复

不好意思,才看到

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Web.Script.Serialization;

namespace Q695687
{
    [Serializable]
    class MyStock
    {
        public string symbol { get; set; }
    }

    [Serializable]
    class MyItem
    {
        public string volume { get; set; }
        public string open { get; set; }
    }

    [Serializable]
    class MyJson
    {
        public MyStock stock { get; set; }
        public string success { get; set; }
        public List<MyItem> chartlist { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://xueqiu.com/");
            req.Method = "GET";
            CookieContainer cc = new CookieContainer();
            req.CookieContainer = cc;
            var rs1 = req.GetResponse().GetResponseStream();
            string cookiestr = req.CookieContainer.GetCookieHeader(req.RequestUri);
            req = (HttpWebRequest)HttpWebRequest.Create("https://xueqiu.com/stock/forchartk/stocklist.json?symbol=SH600756&period=1day&type=before&begin=1478620800000&end=1510126200000&_=1510126200000");
            req.Method = "GET";
            req.Headers.Add("Cookie: " + cookiestr);
            //req.Headers.Add("Cookie: aliyungf_tc=AQAAAHToHii4UgkA+PHteUhWTRZyq+2m; xq_a_token=aef774c17d4993658170397fcd0faedde488bd20; xq_a_token.sig=F7BSXzJfXY0HFj9lqXif9IuyZhw; xq_r_token=d694856665e58d9a55450ab404f5a0144c4c978e; xq_r_token.sig=Ozg4Sbvgl2PbngzIgexouOmvqt0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1532446045; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1532446045; u=941532446046068; device_id=ed69614fd948813e0ee1aab73abcdd13");
            var r = req.GetResponse();
            var stream = r.GetResponseStream();
            var reader = new StreamReader(stream, Encoding.UTF8);
            string json = reader.ReadToEnd();
            JavaScriptSerializer jss = new JavaScriptSerializer();
            MyJson result = jss.Deserialize<MyJson>(json);
            Console.WriteLine(result.stock.symbol);
            for (int i = 0; i < 20; i++)
            {
                Console.WriteLine("\t" + result.chartlist[i].volume + " " + result.chartlist[i].open);
            }
            Console.WriteLine("\t" + "...");
        }
    }
}

wuwei2_00_8
Tom20081 谢谢
大约一年之前 回复

另外给你一个计算时间戳的代码:
static long gettimestamp(DateTime dt)
{
var span = new TimeSpan(dt.Ticks - new DateTime(1970, 1, 1).Ticks);
return (long)span.TotalMilliseconds;
}
使用例子:
Console.WriteLine(gettimestamp(DateTime.Now));
结果
1532593564270

你可以代入你的begin end的参数
begin=1478620800000&end=1510126200000

wuwei2_00_8
Tom20081 谢谢
大约一年之前 回复
wuwei2_00_8
Tom20081 另外cookie多长时间有效啊?
大约一年之前 回复
wuwei2_00_8
Tom20081 时间戳的方便的话也发一下吧,谢谢
大约一年之前 回复

时间戳的方便的话也发一下吧,谢谢

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Q695687 问答的源代码 使用 C# 采集网站返回的json数据
Q695687 问答的源代码 使用 C# 采集网站返回的json数据 https://ask.csdn.net/questions/695687
C# 返回json数据
var ms = from n in CC_ where n.sales_account == sales && n.storefront == st orderby n.customer_name select n;rn[color=#FF0000]Response.Write("[");rn foreach (var s in ms)rn rn Response.Write("sales:"+s.sales);rn Response.Write("cu_name:"+s.customer_name);rn rnResponse.Write("]");[/color]rnrn除了这种方式返回json,还有其他方法吗?请指点。。。。
C#处理返回的JSON数据
[code=Json]rnrn "MSGTY": "S",rn "MESSAGE": "DN 读取成功",rn "header": rn "VBELN": 8000000032,rn "LFART": "ZLF1",rn "KUNNR": 10000000,rn "NAME": "国内测试客户1",rn "WADAT": "",rn "KUNNR_S": 10000000,rn "STREET": "街道",rn "TEXT1": "ewqewqe",rn "Item": [rn rn "POSNR": "000010",rn "WERKS": 2000,rn "MATNR": "乌龙",rn "ARKTX": "茶品1",rn "LGMNG": "4.000 ",rn "ZIEME": "KG",rn "ZLGMNG": "000000",rn "LGORT": "",rn "ABTNR": "",rn "UEBTO": "0.0 ",rn "UNTTO": "0.0 ",rn "ZT01": "A",rn "ZT02": "",rn "ZTXX": ""rn ,rn rn "POSNR": "000020",rn "WERKS": 2000,rn "MATNR": "龙井",rn "ARKTX": "茶品2",rn "LGMNG": "5.000 ",rn "ZIEME": "KG",rn "ZLGMNG": "000000",rn "LGORT": "",rn "ABTNR": "",rn "UEBTO": "0.0 ",rn "UNTTO": "0.0 ",rn "ZT01": "A",rn "ZT02": "",rn "ZTXX": ""rn rn ]rn rnrn[/code]rn我现在要用实体类序列化这个数据,怎么整到我的实体类里面rn "MSGTY": "S",rn "MESSAGE": "DN 读取成功",rn这个是提示信息,判断成功与否,首先得处理这个数据,是否成功,成功然后再获取具体信息rnheader下面的是表头,Item里面的是表体
C# Ajax 返回json数据
前台调用 function checkLogin() { var name = $("#email").val(); var passward = $("#password").val(); $.ajax({ url: 'Ajax/web.ashx?method=login', type: '
C# 返回一个JSON数据
前端 &amp;lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeBehind=&quot;yujkc.aspx.cs&quot; Inherits=&quot;NetWing.BPM.Admin.psi.yujkc&quot; %&amp;gt; &amp;lt;%@ Import Namespace=&quot;System.Data&quot; %&amp;gt; &amp;lt;%@ Import Name
使用SpringBoot返回json数据
步骤如下1:编写实体类Demo2 : 编写getDemo()方法3:测试总结:这里我们没有对数据进行任何操作,SpringBoot为什么能直接给我们返回json数据。这是因为SpringBoot默认使用的json解析框架是jackson,所以当你返回一个demo对象时他会自动通过jackson解析框架将我们的对象解析成json返回回来。...
使用jackson返回json数据
(1)添加jar包 com.fasterxml.jackson.core jackson-databind 2.9.5 注意:maven引入jackson-databind会连带引入 core和annotations 非maven项目需要引入这三个包 (2)实现代码:@ResponseBody 注意:需要在配置文件添加 mvc:annotation-driven/ ** $.ajax({})...
使用Servlet返回JSON数据
通过JSON-LIB实现JSON数据的处理,涉及json-lib-2.4-jdk15.jar、commons-beanutils-1.9.3.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.2.jar、ezmorph-1.0.6.jar包,资源包可自行下载,注意资源包的版本匹配问题; packag...
使用@ResponseBody返回JSON数据
创建一个项目,在web目录下新建一个assets/js目录,加入jquery和json2的js文件,在lib下加入fastjson的jar文件。 Book3Controller package com.wen.controller; import com.wen.domain.Book; import org.springframework.stereotype.Controller; impo...
C# AJAX 返回json数据问题
![图片说明](https://img-ask.csdn.net/upload/201605/08/1462694504_873561.png)rnrn返回的json数据在末尾带上这一段信息,这是什么情况?
c#获取指定返回的JSON数据
c#获取指定返回的JSON数据 主要代码 public class Info //定义返回的JSON数据中的类型 { public string DisplayText{ get; set; } public string RecognitionStatus{ get; set; } public in...
Struts2使用注解方式返回Json数据
Struts2使用注解方式返回Json数据 最近项目中需要使用struts2的注解方式实现Json数据的返回 讲道理,网上一大堆解决方案,试了半天没有一个完全解决我的问题,因此集百家之长写了这篇博客,希望对大家有用。 1.引入struts2-json-plugin和struts2-convention-plugin的jar包<dependency> <groupId>org
Jquery 返回json数据在TCppWebBrowser中非返回json数据
用socket编程,访问服务器的Jquery 返回json数据,但换在TCppWebBrowser中非返回json数据,用IE11测试,提示下载ask.json文件,后在网上有人教导增加以下到注册表:rnrnWindows Registry Editor Version 5.00rn[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json]rn"CLSID"="25336920-03F9-11cf-8FD0-00AA00686F13"rn"Encoding"=dword:00080000rn[HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json]rn"CLSID"="25336920-03F9-11cf-8FD0-00AA00686F13"rn"encoding"=dword:00080000rnrnIE正常显示json数据。rnTCppWebBrowser怎么弄才能返回json数据?
求助C#采集网站内容.
[url=http://video.baidu.com/v?word=nba&ct=301989888&rn=20&pn=0&db=0&s=0&fbl=1024 ]http://video.baidu.com/v?word=nba&ct=301989888&rn=20&pn=0&db=0&s=0&fbl=1024 [/url]rn类似我要采集这个HTML源码里面的rn[code=HTML][/code]rnrnC# winform应该如何写呀..谢谢了..rnrn20分求助...小弟没多少分...
php采集,网站采集
php采集代码,网站采集代码带详细例子,数据采集
bilibil网站采集 返回视频下载地址【代码】
<?php /** * 视频采集分析视频相关下载地址 * $url bilibili动画视频url地址 * $http_com 地址相关信息参数 * $url 返回一个文件下载地址 */ include 'phpquery/phpQuery/phpQuery.php';//引入phpquery $url=isset($_GET['ur
struts无法返回返回json数据
[img=https://img-bbs.csdn.net/upload/201403/22/1395482760_234493.jpg][/img]rn所有属性都有getter和setterrnrn[img=https://img-bbs.csdn.net/upload/201403/22/1395482795_17733.jpg][/img]rn后台执行没有问题,都能打印rn[img=https://img-bbs.csdn.net/upload/201403/22/1395482879_68819.jpg][/img]rn这是struts.xml配置文件,rn[img=https://img-bbs.csdn.net/upload/201403/22/1395482938_294887.jpg][/img]rn这是jquery代码。但是一直得不到值。rn最后打印出来的rn$("#msg").html(obj.name+"***"+obj.age+"***"+obj.address);rnundefined***undefined***undefinedrn意思是没有数据返回。具体要怎么改?rn求解呀~~~~~~~~~~~~~rnservlet返回数据使用response.write()。但是SSH好像有一种方法不需要这样。求解答
求教c#反序列化json数据,http请求返回的。
n"result": n"position": [n0.0, n0.0n], n"msg": "OK"nnn返回的格式是这样的,我找的网上的反序列化都是只能对中间那个大括号也就是result之后那个大括号进行,对这条信息没法识别,求教怎么解决,谢了n
c#如何获取网页异步返回的json数据
[url=http://b2c.csair.com/B2C40/modules/bookingnew/main/flightSelectDirect.html?t=S&c1=CAN&c2=PEK&d1=2015-08-25&at=1&ct=0&it=0][/url]rn如上这个地址如何能得到这个json数据?rn[img=https://img-bbs.csdn.net/upload/201508/08/1439013698_258331.png][/img]
C#解析和风天气返回的JSON数据
一、前言 最近在用c#做一个项目,需要获取实时天气信息,调研了好多能够提供该服务的服务器,最终决定使用和风天气。官网如下:https://www.heweather.com/。通过发送相应的请求,我们得到服务器返回的数据。如下所示: {&quot;HeWeather6&quot;:[{&quot;basic&quot;:{&quot;cid&quot;:&quot;CN101120206&quot;,&quot;location&quot;:&quot;黄岛&quot;,&quot;parent_ci
c#如何请求页面,返回其JSON数据
我用c#请求一个页面,页面的数据是JSON格式的,有什么办法可以不通过数据流转换直接将JSON数据取回到本地使用????
如何使用C#生成json数据
[rn ["崇明", "崇明"],rn ["黄浦", "黄浦"],rn ["卢湾", "卢湾"],rn ["徐汇", "徐汇"],rn ["长宁", "长宁"],rn ["静安", "静安"],rn ["普陀", "普陀"],rn ["闸北", "闸北"],rn ["虹口", "虹口"],rn ["杨浦", "杨浦"],rn ["闵行", "闵行"],rn ["宝山", "宝山"],rn ["嘉定", "嘉定"],rn ["浦东", "浦东"],rn ["金山", "金山"],rn ["松江", "松江"],rn ["青浦", "青浦"],rn ["南汇", "南汇"],rn ["奉贤", "奉贤"],rn ["朱家角", "朱家角"]rn]rnrn如何使用C#生成上面的json数据
C#使用Litjson构建json数据
首先我们知道json数据有两种格式: 1.JsonObject 2.JsonArray 现在,我们要构建这样格式的json数据: {"api":"app.create","params":[{"name":"hillsidewatchers","description":"dess"}]} listjson中使用JsonData来声明一个Json对象,声明之后我们需要指定这个对象是J
spring boot返回json数据和完美使用fastjson解析json数据
Demo实体类:package com.xf.hello; /** * 测试实体 */ public class Demo { private int id; private String name; public int getId() { return id; } public void setId(int id) { ...
JSON数据 与 JSON数据的使用
一、JSON数据JSON:JavaScript 对象表示法(JavaScript Object Notation)。根据这个定义,需要稍微了解JavaScript对象的格式var obj={ "name":"liming", "age":12 }JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。什么是 JSON ? JSON 指的是 JavaScri
SpringBoot学习--使用jackson返回json数据
目前java json解析工具有阿里的fastjson,google的GSON,以及SpringMVC 默认的解析工具Jackson。SpringBoot默认自带是jackson,很多json转换速率的比对,如jackson,阿里的fastjson等,jackson足够使用了. 使用jackson 1.pom.xml文件中引用依赖包. &amp;lt;dependency&amp;gt; &amp;l...
使用另一个项目返回的json数据及解析
使用另一个项目返回的json数据及解析,在此我们使用了RestTemplate来获取json数据 RestTemplate resttemplate = new RestTemplate(); String url = “http://ip地址/设置的端口/{id}”; int id =“2”; JSONObject jsononject = resttemplate.getForObject(u...
Spring中使用FastJson返回json数据
使用JSONObject工具类JSONObject.toJSONString(result, SerializerFeature.DisableCircularReferenceDetect); 后面需要制定SerializerFeature 直接使用Spring中的HttpMessageConverterspringboot中 : 继承WebMvcConfigurerAdapter 复写con
struts使用ajax返回json数据所需jar包
很多人在实现struts使用ajax返回json数据的时候,明明代码没有错误但是没有得到结果,其实有可能是jar包冲突或者少了,这里我分享ssh的所有jar包,可以直接部署使用,如果部署有问题的可以看下我的说明文档,本来想免费分享的但是最少也要两分。。。
使用Ajax请求servlet返回json数据
在上一篇博客当中使用Ajax提交请求至servlet,得到的是String字符串,同样,js对于json的支持不用说,自然是最好的,也可以从servlet返回json格式的数据。 在Java中提供了将数据封装为json格式的jar包,json.jar和json_simple-1.1.jar,这两个包都可以百度下载到,比较好找。 jsp代码中只写了一个按钮用来触发点击事件从而调用Ajax获取数据...
jsp中使用ajax返回json数据错误
struts2的action代码如下:rnpackage ajaxaction;rnrnimport java.util.ArrayList;rnimport java.util.List;rnimport po.Weeks;rnimport service.Weeksservice;rnimport org.apache.struts2.json.annotations.JSON;rnimport action.Action;rnrnpublic class Showweekaction implements Action rnprivate String username;rn private String date;rn private Weeksservice ws;rn private List weekslist;rn rnrnpublic String getUsername() rnreturn username;rnrnrnpublic void setUsername(String username) rnthis.username = username;rnrnrnpublic String getDate() rnreturn date;rnrnrnpublic void setDate(String date) rnthis.date = date;rnrn@JSON(serialize=false)rnpublic Weeksservice getWs() rnreturn ws;rnrnrnpublic void setWs(Weeksservice ws) rnthis.ws = ws;rnrnrn @JSON(serialize=false)rnpublic List getWeekslist() rnreturn weekslist;rnrnpublic void setWeekslist(List weekslist) rnthis.weekslist = weekslist;rnrnrn[color=#FF0000]public String execute() rnweekslist=new ArrayList();rnweekslist=ws.getweek(username,date);rnSystem.out.print(weekslist.size());rnreturn SUCCESS;rn[/color]rnjsp中javascript如下:rn function fun()rn $.ajax(rn url:"ajaxshowweek",rn data:username:"zxl",date:"2011-04-06",rn type:'post',rn dataType:'json',rn success:function(data)rn var jsonobject=data.weekslist;rn $.each(jsonobject,function(key,value)rn alert(key+" "+value.event);rn ) rn ,rn error:function()rn alert("失败");rn rn );rn rn struts.xml:rn rn rn rn rn rn 我在控制台里查了一下weekslist的长度为2,说明它不为空。(weekslist是从数据库里取出来的,ws是业务逻辑还有dao层)但是在js里用each遍历什么也没有输出……rn 我还想问一下这个serialize(序列化)到底是干什么的,就是变成key:value模式?rn 我要崩溃了,这个问题已经困扰我三四天了,网上查了很多就是没解决各位大虾帮帮忙……
struts2返回json数据 ——不使用json插件
struts.xml            public void login() throws IOException{ HttpServletRequest request =ServletActionContext.getRequest(); String userCode = request.getParameter("userCode
struts2.5.1使用jQuery的ajax请求,返回json数据
1.导入jar包 2.配置web.xml 2.配置struts.xml 1).包package需要继承(extends)自json-default” 2). result的type属性为”json” 3).param的name=”root”表示唯一输出的,中间的map表示输出的对象与Action类中的字段匹配 3.编写Action类的LoginActi
struts2返回json数据的方法一 使用json-default
NULL 博文链接:https://firezhfox.iteye.com/blog/1730549
django使用HttpResponse返回json数据为中文
Python3读取写入json的中文乱码问题 之前我用django一般用JsonResponse来返回json数据格式 但是发现返回中文的时候会乱码 from django.http import JsonResponse def test(request): result = {"result": 0, "msg": "执行成功"} return return JsonRespo...
使用okhttp时没有返回json数据
今天踩过的大坑........ 这是一段使用okhttp进行post请求的代码 OkHttpClient client = new OkHttpClient(); RequestBody body = new FormEncodingBuilder() .add("key", value) .build();
使用@ResponseBody返回JSON数据报错406
问题: 控制器要返回转换成JSON的对象时,使用注解@ResponseBody报错,服务器返回406。解决办法: JSON依赖不仅需要jackson-core-asl和jackson-mapper-asl,还需要jackson-databind依赖。 SpringMVC配置时除了&amp;lt;mvc:annotation-driven/&amp;gt;,还需要添加配置。控制器 - Java: packag...
struts2返回json数据的方法二 使用jackson
public class BaseAction extends ActionSupport { private static final long serialVersionUID = 4260238422873356334L; /** * 返回json数据 * @param object * @return */ ...
js返回json数据行不行?
A.html:rn $.ajax(rn url:b.js rn data:参数1和参数2的值rn datatype:jsonrn)rnrnB.html:rnrn[code=JScript]rn根据参数1、2的值取得一个json数组resultrn--------------rn可js这里怎么返回给A.html?rnresponseText=result//这样写?rn--------------rnrn[/code]
返回JSON数据的接口
需要写一个只给出连接就可以返回JSON数据的接口 如何实现 请给出思路
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法