有很多類似的執行緒,但我無法弄清楚我想要什么。我想從網頁中獲取十進制值。
這是網站:
我嘗試了下面所述的代碼,但它只得到 html 代碼。
WebClient wb = new WebClient();
String strPageCode = wb.DownloadString("https://www.lme.com/Metals/Non-ferrous/LME-Aluminium#Trading day summary");
richTextBox1.Text = strPageCode;
我想我必須檢查類似谷歌瀏覽器的頁面元素。為此,我嘗試使用 selenium nuget 包,但我無法弄清楚。
另一種解決方案是 sendkey CTRL A 和 CTRL C 復制所有頁面內容。然后從剪貼板內容中提取值。但是如何在不打開瀏覽器的情況下發送密鑰?
uj5u.com熱心網友回復:
為了獲取這些值,您必須GET向此 API 端點發出請求:(/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; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/442470.html
