C#写爬虫及解析Json数据

之前一直用python写爬虫,因工作需要使用C#,记录一下,得到Json数据写过爬虫的应该都知道

public string GetResponse(string Url)
        {
            string ResponseData = string.Empty;
            try
            {

                HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(Url);
                httpWebRequest.Timeout = 200000;
                httpWebRequest.Method = "GET";

                HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                Stream responseStream = httpWebResponse.GetResponseStream();
                StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
                ResponseData = streamReader.ReadToEnd();
                streamReader.Close();
                responseStream.Close();

            }
            catch (Exception)
            {
                ResponseData = null;
            }
            return ResponseData;
        }

public string Get_detail()
        {
            string reponse = null;
            string url = "https://***.json";
            try
            {
                reponse = GetResponse(url);
                
            }
            catch (Exception)
            {
                reponse = string.Empty;
            }
            
            return reponse;
        }

下面是用C#解析Json数据,很简单,需要在vs中安装Json包,在解决方案-引用上右键打开NuGet包管理,搜索Newtonsoft.Json并安装即可使用

using Newtonsoft.Json.Linq;

public JArray Parse_data(string data)
        {

           //读数组型json {"aaa":[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]};

            JObject jObject = JObject.Parse(data);
           
            JArray data = (JArray)jObject["aaa"];
            
            foreach (JObject item in data)
            {
                *** = item["a"]; //即可得到a1,a2,作后续使用,使用item["**"].ToString()可以转为string
                //如果有其他来源的数据我想整合到Json的每一条数据中可以试用这个方法为Jobject添加项
                var newJsonObj = JObject.Parse("{\"项的名字\":\"" + 项的值 + "\",\"项2的名字\":\"" + 项2的值);
                item.Add(newJsonObj.Properties());
            }
            
            //直接读Json字符串
            //JsonReader reader = new JsonTextReader(new StringReader(data));
            //while (reader.Read())
            //{
            //    Console.WriteLine(reader.Value + "\r\n");
            //}
            return jsonServers;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章