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;
        }

 

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