C#如何从网站中只获取一个字符串[重复]
Posted
技术标签:
【中文标题】C#如何从网站中只获取一个字符串[重复]【英文标题】:C# How to get only one string from a website [duplicate] 【发布时间】:2019-05-13 12:30:12 【问题描述】:我正在尝试从网站获取数据。但是 HttpWebRequest 带出了网站的整个 html 编码。我只想从网站上获得订阅者。
代码是:
using System;
using System.Net;
using System.IO;
class DownloadPageHttpWebRequest
static void Main()
string html = string.Empty;
string url = "https://grow.grin.co/live-youtube-subscriber-count/PewDiePie";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
html = reader.ReadToEnd();
Console.WriteLine(html);
Console.ReadKey();
输出是这样的,我把它缩短了。
var start =
id: "UC-lHJZR3Gqxm24_Vd_AJ5Yw",
count: 76239202,
name: "PewDiePie"
...
我只想打印“计数”,但我不知道该怎么做。请帮忙!
【问题讨论】:
这只是在所有文本中搜索“count:”并将部分提取到逗号。有很多方法可以做到这一点,例如分成几行,然后 .Where 找到哪一行包含文本“count:”并从那里处理,或者对整个文本运行正则表达式 - 编写匹配并提取数字的内容应该很容易。跨度> 或there are YouTube APIs for this,而不必去第三方网站。 您可以尝试解析字符串,但是当网页更新时您的代码可能会中断。希望有问题的网站将有一个 API 旨在帮助您做这类事情。 已经回答***.com/questions/11426204/…你需要细化你的搜索/如何搜索/问题前搜索 【参考方案1】:您的输出格式是 json。所以你可以解析你的 json 来获取计数。
var start = " id: 'UC-lHJZR3Gqxm24_Vd_AJ5Yw', count: 76239202, name: 'PewDiePie' ";
dynamic result = JsonConvert.DeserializeObject(start);
var count = result.count;
Console.WriteLine(count);
【讨论】:
这对我有用!谢谢。 我在这里遗漏了什么吗?它是怎样的 JSON?即使我明确请求 JSON,我也会得到 HTML。我认为 OP 想要的输出是 JSON? @John HTML 内部嵌入了 JSON。我很难看到 OP 认为这如何解决了他们的问题,因为他们的问题是如何解析 HTML,而这个解决方案 依赖于知道如何解析 HTML。 @mjwills 啊,我明白了。如果问题能说清楚就好了。我同意,如果 OP 不知道如何解析 HTML,我不明白这对整体解决方案有何帮助。 这实际上是 OP 整体问题的第 2 步 - 可惜他们的问题只关注第 1 步 @John。 :(以上是关于C#如何从网站中只获取一个字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章