使用C#从网页中获取十进制值

Get decimal value from webpage with C#

有很多线程与此类似,但我无法弄清楚我wanted.I 想从网页中获取什么十进制值。

这是网站:https://www.lme.com/Metals/Non-ferrous/LME-Aluminium#Trading+day+summary

我会得到我在下图中标记的铝价。

我尝试了下面所述的代码,但它只得到 html 个代码。

 WebClient wb = new WebClient();
 String strPageCode = wb.DownloadString("https://www.lme.com/Metals/Non-ferrous/LME-Aluminium#Trading+day+summary");
 richTextBox1.Text = strPageCode;

我想我必须检查类似 google chrome 的页面元素。为此,我尝试使用 selenium nuget 包,但我无法弄清楚。

另一种解决方法是sendkey CTRL+A 和CTRL+C 复制所有页面内容。然后从剪贴板内容中提取值。但是如何在不打开浏览器的情况下发送密钥?

为了获取这些值,您必须向此 API 端点发出 GET 请求:/api/trading-data/day-delayed?datasourceId=1a0ef0b6-3ee6-4e44-a415-7a313d5bd771 (基地址:https://www.lme.com)。

获取这些值的示例:

using System.Text.Json;

HttpClient client = new();
client.BaseAddress = new Uri("https://www.lme.com");
var response = await client.GetStringAsync("/api/trading-data/day-delayed?datasourceId=1a0ef0b6-3ee6-4e44-a415-7a313d5bd771");

var table = JsonSerializer.Deserialize<Table>(response);
var bids = table.Rows.Select(r => r.Values[0]);
var offers = table.Rows.Select(r => r.Values[1]);
// POCO
public class Table
{
    public Row[] Rows { get; set; }
    public string Title { get; set; }
    public string Strapline { get; set; }
    public string SupportingCopy { get; set; }
    public string NoDataMessage { get; set; }
    public int DataType { get; set; }
    public DateTime DateOfData { get; set; }
    public DateTime LookbackDate { get; set; }
    public bool HistoricalDataLookbackEnabled { get; set; }
    public int HistoricalDataLookbackRange { get; set; }
    public int HistoricalDataLookbackUnit { get; set; }
    public int HistoricalDataDisplayPeriod { get; set; }
    public string[] ColumnTitles { get; set; }
    public bool HideColumnTitles { get; set; }
}

public class Row
{
    public DateTime BusinessDateTime { get; set; }
    public string Ric { get; set; }
    public string RowTitle { get; set; }
    public DateTime[] BusinessDates { get; set; }
    public string[] Values { get; set; }
    public string HoverMessage { get; set; }
    public string HoverValue { get; set; }
    public object HoverValues { get; set; }
    public string HoverText { get; set; }
}