我正在尝试将网页从我不理解的格式转换为ascii,以便可以查找某些数据。我使用带有网页URL的webclient检索数据,然后使用编码将数据从我认为是unicode的内容转换为ascii,但格式完全不变。下面是我的代码:
WebClient web = new WebClient();
string page = "https://www.myurl.com/";
Stream data = web.OpenRead(page);
StreamReader reader1 = new StreamReader(data);
string input = reader1.ReadToEnd();
Encoding unicode = Encoding.Unicode;
Encoding ascii = Encoding.ASCII;
string webpage = ascii.GetString(
Encoding.Convert(unicode, ascii, unicode.GetBytes(input))
);
以下是网页数据的外观,与输入数据相同,这表明我的转换无效。
\"sprited\":true,\"spriteCssClass\":\"sx_a11c08\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505789\":{\"sprited\":true,\"spriteCssClass\":\"sx_5219b1\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505782\":{\"sprited\":true,\"spriteCssClass\":\"sx_c0671f\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"505794\":{\"sprited\":true,\"spriteCssClass\":\"sx_8cf344\",\"spriteMapCssClass\":\"sp_SN-oNOqlzVS\"},\"495429\":
有人知道这是什么类型的数据,以及如何将其转换为我可以理解的数据?当我在浏览器上显示网页的页面源时,这些奇怪的数据都不会显示出来。换句话说,我从网络客户端获得的数据看起来根本不像浏览器中的页面源。
答案 0 :(得分:0)
下面是完整的网页数据吗?两端看起来都不完整,对我而言,它看起来像JSON数据。您可以使用JavaScriptSerializer类将其转换为C#对象。
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
Test resultingData = (Test)json_serializer.DeserializeObject(your_data);
答案 1 :(得分:0)
如果您想从请求中读取JSON,请like here,
var json = web.DownloadString(page);
然后,您需要将字符串反序列化为对象,如果知道响应的模型类型,则可以这样做,让它的ResponseType
开始。
using Newtonsoft.Json;
...
var result = JsonConvert.DeserializeObject<ResponseType>(json);
有一个名为Facebook的NuGet程序包,您可以将其导入到项目中。这将为您提供一些可能与类型匹配的模型。
如果您不知道响应的类型,则可以执行以下操作,
using Newtonsoft.Json.Linq;
...
var jObject = JObject.Parse(json);