Изучал чистый xpath (HtmlAgilityPack, без использования браузера для POST\GET запросов) последний месяц под свои нужды. Очень часто в новичков на форуме проблемы с его
подключением. Так что вот пример шаблона с подключенными библиотеками,
СКАЧАТЬ ПРИМЕР.
Основной код из шаблона:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); // создание объекта
var template_html = project.Variables["Htnl_Code"].Value; // грузим наш код
// условие xpath, если надо найти все элементы с value, где тег input имеет name='c1':
var var_xpath1 = @"//*[@value and @name='c1']";
// или условие xpath, если надо найти просто все элементы с value:
// var var_xpath1 = @"//*[@value]";
string temp = "";
string result = "";
doc.LoadHtml(template_html); // грузим DOM текст (из переменной template_html) в объект doc
// получаем список, с которым будем работать (в шаблоне должен уже быть пустой список List1_Urls)
var sourceList = project.Lists["List1_Urls"];
var Nodes_list_1 = doc.DocumentNode.SelectNodes(var_xpath1); // получаем список элементов по условию var_xpath1
if (Nodes_list_1 != null) // обязательно надо делать проверку "не пустой ли результат"
{
foreach (var res in Nodes_list_1) // начинаем цикл
{
temp = res.GetAttributeValue("value", ""); // получаем значение value каждого элемента
result += temp + "\r\n"; // добавляем его в переменную, каждое значение с новой строки
sourceList.Add(temp); // и добавляем его в список (кому как удобнее)
}
}
return result;
Шаблон работает с использованием Html Agility Pack (.NET парсер HTML).
Поэтому для его работы надо закинуть содержимое папки "ExternalAssemblies" в аналогическую папку ZennoPoster, пример у меня:
c:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.11.5.0\Progs\ExternalAssemblies\
Ети файлы я тестировал на своем «Windows 10». Они взяты из файла «HtmlAgilityPack.1.5.1\lib\Net45\» (под .NET Framework 4.5). Все актуальные версии файлов можно посмотреть на сайте разработчиков:
https://www.nuget.org/packages/HtmlAgilityPack/1.5.1 . Они там правда распаковываются через их консольную утилиту.
Если с этими файлами шаблон не запускается без ошибок, значит чего-то не хватает, и надо разбираться.
Почти все нюансы работы с HtmlAgilityPack разбирались на форуме. Я вот себе в закладки добавил самые важные ссылки из сети:
http://zennolab.com/discussion/threads/problema-s-parsingom-v-amazon.32660/
http://citforum.ru/internet/xpath/xpath.shtml
http://kronus.me/2011/04/введение-в-xpath-на-примере-простого-парсе/
https://docs.google.com/document/d/1PdfKMDfoqFIlF4tN1jKrOf1iZ1rqESy2xVMIj3uuV3g/pub#h.pazner1ml919
http://onedev.net/post/458
http://html-agility-pack.net/api
https://stackoverflow.com/questions/5801828/html-agility-pack-null-reference