【发布时间】:2015-08-22 01:17:31
【问题描述】:
我想从 youtube 视频链接中提取观看次数。
string youtubelink = richTextBox1.Text;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(youtubelink);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string data = reader.ReadToEnd();
Regex views = new Regex("watch-view-count\">" + @"\d+\s\d+");
Match v = views.Match(data);
richTextBox1.Text = Regex.Replace(v.ToString(),"watch-view-count\">", "");
但我的问题是 "@"\d+\s\d+");"例如,当视频有更多观看次数时,他们将不会显示,因为此代码仅显示 xxx xxx 次观看(同样的工作方式相反,如果我再添加一行并且视频的观看次数将减少,他们也不会显示) 正则表达式有什么技巧可以防止这种情况发生吗?谢谢。
【问题讨论】:
-
我强烈建议不要使用屏幕抓取,而是使用use the YouTube API。
-
+1 对 Uwe 的建议,无论如何,我会避免使用 HTML 的正则表达式并使用 HTML 解析器,例如 HTML Agility Pack