string patchFaileOut = project.Directory + @"\articles.csv"; //Путь к таблице статей
//Проверяем, существует ли таблица со статьями
if (!File.Exists(patchFaileOut))
{
File.AppendAllText(patchFaileOut, "Дата выхода стать; Заголовок; Текст; URL Imag-1" + Environment.NewLine, Encoding.UTF8);//Создаем таблицу, если ее нет, прописываем названия столбцов
}
HtmlDocument doc = new HtmlDocument(); // создание объекта
var template_html = project.Variables["get_article"].Value; // грузим наш код
doc.LoadHtml(template_html); // грузим DOM текст (из переменной template_html) в объект doc
string date_article = doc.DocumentNode.SelectSingleNode(".//span[contains(@class, 'article-stat__date')]").InnerText.HtmlDecode();//Парсим дату постинга статьи
project.SendInfoToLog("Парсим дату выхода статьи", true);
if(date_article ==null){
project.SendErrorToLog("Не найдена дата выхода статьи! Проверьте путь xPath!", true);
}
string article_title = doc.DocumentNode.SelectSingleNode(".//h1[contains(@class,'article__title')]").InnerText.HtmlDecode();// Парсим заголовок статьи
project.SendInfoToLog("Парсим заголовок статьи", true);
if(article_title == null){
project.SendErrorToLog("Не найден заголовок статьи! Проверьте путь xPath!", true);
}
string articleMiddle = doc.DocumentNode.SelectSingleNode(".//div[contains(@class,'article-render')]").InnerText.HtmlDecode();//Парсим текст статьи
project.SendInfoToLog("Парсим текст статьи", true);
string cell_1 = CommonCode.StringToCSVCell(articleMiddle);//// В переменной articleMiddle значение для ячейки.
if(articleMiddle == null){
project.SendErrorToLog("Не найден текст статьи! Проверьте путь xPath!", true);
}
var url_Img = doc.DocumentNode.SelectSingleNode(".//img[contains(@class, 'article-image__image')]").Attributes["data-src"].Value;
if(url_Img == null)
{
project.SendErrorToLog("Не найдены ссылки на изображения! Проверьте путь xPath!", true);
}
List <string> data = new List <string>();//Создаем спиисок для временного хранения данных
string line = String.Format("{0};{1};{2};{3}", date_article, article_title, articleMiddle, url_Img); //Формируем строку для записи данных в список
data.Add(line);//Добавляем спаршенные данные во временный список
File.AppendAllLines(patchFaileOut,data, Encoding.UTF8);//Записывем данные из временного списка в таблицу