我正在尝试将网页从我不理解的格式转换为ascii,以便我可以查找某些数据。 我使用带有网页网址的 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":
有谁知道这是什么样的数据以及如何将其转换为我可以理解的数据? 当我在浏览器上显示网页的页面源代码时,这些奇怪的数据都没有显示出来。 换句话说,我从Web客户端获得的数据看起来根本不像浏览器上的页面源代码。
这是下面的完整网页数据吗?它的两端看起来不完整。对我来说,它看起来像JSON数据。可以使用 JavaScriptSerializer 类将其转换为 C# 对象。
JavaScriptSerializer json_serializer = new JavaScriptSerializer();
Test resultingData = (Test)json_serializer.DeserializeObject(your_data);
<</div>
div class="one_answers"> 如果你想从请求中读取JSON,请像这里一样做,
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);
然后,可以使用 LINQ 查询对象。