我想使用 web api 获取歌词,但它有一个错误“System.Net.Http.HttpClient”不包含“DownloadData”的定义,并且没有扩展方法“DownloadData”接受类型为“System.Net”的第一个参数。可以找到 Http.HttpClient'(您是否缺少 using 指令或程序集引用?)
这是我的代码
internal static class LyricsFetcher
{
internal static String GetLyrics(String Artist, String Title)
{
byte[] responseData;
string URL;
URL = "http://api.metrolyrics.com/v1/search/lyrics/?find=" + Artist + "%20" + Title + "&X-API-KEY=1234567890123456789012345678901234567890";
HttpClient wClient = new HttpClient();
responseData = wClient.DownloadData(URL); // error
UTF8Encoding utf8 = new UTF8Encoding();
String Lyrics = utf8.GetString(responseData,0,responseData.Length);
return Lyrics;
}
}
Run Code Online (Sandbox Code Playgroud) 我想从 html 获取特定数据。我使用 c# 和 HtmlAgilityPack
这是 HTML 示例:
<p class="heading"><span>Greeting!</span>
<p class='verse'>Hi!<br> //
Hello!</p><p class='verse'>Hello!<br> // i want to get this g
Hi!</p> //
<p class="writers"><strong>WE</strong><br/>
Run Code Online (Sandbox Code Playgroud)
这是我在 C# 中的代码:
StringBuilder pureText = new StringBuilder();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(Lyrics);
var s = doc.DocumentNode.Descendants("p");
try
{
foreach (HtmlNode childNode in s)
{
pureText.Append(childNode.InnerText);
}
}
catch
{ }
Run Code Online (Sandbox Code Playgroud)
更新:
StringBuilder pureText = new StringBuilder();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(URL);
var s = doc.DocumentNode.SelectNodes("//p[@class='verse']"); // error
try
{
foreach …Run Code Online (Sandbox Code Playgroud)