Два вопроса по xPath
В продолжение темы https://zennolab.com/discussion/threads/parsing-soobschenij-s-foruma.52035/#post-388935
Пытаюсь спарсить данные отсюда http://www.stavochka.com/forum/viewtopic.php?f=1&t=1129 в таком формате
Нашел пример на форуме:
https://zennolab.com/discussion/threads/vopros-po-xpath.43645/#post-323326
Подставил свои значения xPath
Общий код выглядит так
Суть проблемы. Я делаю get запрос к сайту, он проходит успешно, а вот с C# кодом возникла проблема.
Выбивает ошибку Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта.
И второй вопрос, как составить xPath чтобы еще дату сообщения парсило? Проект прикрепил к посту. Спасибо за помощь!
В продолжение темы https://zennolab.com/discussion/threads/parsing-soobschenij-s-foruma.52035/#post-388935
Пытаюсь спарсить данные отсюда http://www.stavochka.com/forum/viewtopic.php?f=1&t=1129 в таком формате
Искал информацию по форуме, понял что для парсинга мне нужно использовать xPath+HtmlAgilityPackимя пользователя;дата сообщения;текст сообщения
Нашел пример на форуме:
https://zennolab.com/discussion/threads/vopros-po-xpath.43645/#post-323326
Подставил свои значения xPath
Код:
//table[@cellspacing='1'] - основной узел
.//b[@class='postauthor'] - автор поста
.//div[@class='postbody'] - сам пост
Общий код выглядит так
Код:
var html = project.Variables["HTML"].Value; // html страница
var doc = new HtmlDocument();
doc.LoadHtml(html); // создали объект HtmlDocument и загрузили в него html страницу
var nodes = doc.DocumentNode.SelectNodes("//table[@cellspacing='1']"); // взяли нужные узлы сразу без рекламы (как писал @Moadip: "Для маньяков xpath")
project.SendInfoToLog("нашли столько узлов:" + nodes.Count.ToString(), true);
var list = new List<string>();
foreach (var node in nodes) // в цикле добавляем в список элемент состоящий из двух строчек
{
var author = node.SelectSingleNode(".//b[@class='postauthor']").InnerText; // текст заголовка
var post = node.SelectSingleNode(".//div[@class='postbody']']").InnerText; // текст описания
list.Add(author + "\r\n" + post); // добавил в список "двойную строчку"
}
var res = string.Join("\r\n", list); // объединил двойный строчки
return res;
Суть проблемы. Я делаю get запрос к сайту, он проходит успешно, а вот с C# кодом возникла проблема.
Выбивает ошибку Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта.
И второй вопрос, как составить xPath чтобы еще дату сообщения парсило? Проект прикрепил к посту. Спасибо за помощь!
Вложения
-
90,3 КБ Просмотры: 139