public class Episodeя не стал менять местами Title и OverallNumber.. ну.. тут вам, как творцу виднее.. при условии понимания )).. у меня чувство, что надо поменять..
int x = Convert.ToInt32(episodes[1].Title); если все еще не освоили отладчик, добавте выше строкуConsole.WriteLine(episodes[1].Title); и тут много нюансов.. episodes точно не пустая?.. тогда первый элемент индексируется не с "1" а с "0".. (принцип нумерации во всех си-подобных языках..
class Program
{
static void Main(string[] args)
{
string url = "https://www.banki.ru/products/currency/usd/";
var web = new HtmlWeb();
var document = web.Load(url);
var nodes = document.DocumentNode.SelectNodes("//div[contains(@class, 'Flexbox__sc-wtbhrg-0 fEdnEg')]");
List<Episode> episodes = new List<Episode>();
var t = "";
if (nodes == null)
Console.WriteLine("Null");
else
{
t = HtmlEntity.DeEntitize(nodes[0].SelectSingleNode("//div[contains(@class, 'Text__sc-j452t5-0 hDxmZl')]").InnerText);
foreach (var node in nodes)
episodes.Add(new Episode()
{
Title = t,
OverallNumber = HtmlEntity.DeEntitize(node.SelectSingleNode("//div[contains(@class, 'Text__sc-j452t5-0 bCCQWi')]").InnerText)
});
using (var writer = new StreamWriter("output.csv"))
using (var csv = new CsvWriter(writer, CultureInfo.CurrentCulture))
csv.WriteRecords(episodes);
}
Console.WriteLine(t);
}
}
OverallNumber,Title
Обновление: 10.02.2024 09:45,"90,89 ₽"
Обновление: 10.02.2024 09:45,"90,89 ₽"
Обновление: 10.02.2024 09:45,"90,89 ₽"
- курс у вас парсится с обозначением валюты ..
-
Convert.ToInt32его не ждет (на сколько я помню).. по тому и ломается..- и снова культура, вам нужна ваша дефолтная, а еще уверенность что в качестве разделителя знаков? запятая или точка?.. все это легко проверить малюсенькой тестовой программой. ну и при необходимости репарсить исходную строку (замена запятой на точку, или наоборот, возможно вырезание знака рубля.. но может при правильном разделителе и слопает? напишите о результата ))