Проверка пути xpath для парсера товаров

ParadoxRU

Client
Регистрация
04.09.2019
Сообщения
19
Благодарностей
6
Баллы
3
Доброго времени.
Собираю первый парсер.
В некоторых товарах есть цена по акции, в некоторых нет.
Если во всех товарах раздела есть акционная цена, то шаблон работает без проблем, если нет, то неудачный get запрос и работа по парсингу замедляется. Использую библиотеку xpath от ТС здесь.

C#:
for(i = 0; i < id.Count; i++)
    {
       
        xcena = String.Format("//div[@id='{0}']/div/div[contains(@class, 'item_info TYPE_1')]/div[contains(@class, 'cost prices clearfix')]/div[contains(@class, 'price_old btn btn-default')]/span" , id[i]);
        string _cena = m.get(xcena , "innertext");
           cena.Add(_cena);
       
    }
Если пути в карточке не существует (акционной цены нет), как обработать переменную xcena не потеряв остальные переменные из карточки товара?

C#:
xcena = "";
        if(xcena.Trim("//div[@id='{0}']/div/div[contains(@class, 'item_info TYPE_1')]/div[contains(@class, 'cost prices clearfix')]/div[contains(@class, 'price_old btn btn-default')]/span") != "")
       
        {
            continue;
           
        }
        else
        {
            xcena = String.Format("//div[@id='{0}']/div/div[contains(@class, 'item_info TYPE_1')]/div[contains(@class, 'cost prices clearfix')]/div[contains(@class, 'price_old btn btn-default')]/span" , id[i]);
            string _cena = m.get(xcena , "innertext");
               cena.Add(_cena);
           
        }
Так выдает "CS1503" "Argument 1: cannot convert from 'string' to 'char'".
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
ничего не понятно, но очень интересно :-)

Значит вот что не понятно. Зачем проверять путь xpath если проблема в выдаче на сайте ? и на что надо проверить этот путь ?
Потом. в этих листингах идет работа с какой то библиотекой, и хрен знает что там происходит. соответственно вопросы надо задавать автору этой библиотеки по ее функционалу. Мы то ту не телепаты.
 
  • Спасибо
Реакции: ParadoxRU

ParadoxRU

Client
Регистрация
04.09.2019
Сообщения
19
Благодарностей
6
Баллы
3
Переформулирую. Как сделать проверку пути xpath?

Логика:
Обьявляю переменную куда кладем строковый параметр ID по пути xpath
Если путь xpath найден- работаем с ним.
Иначе пропускаем эту переменную и продолжаем работу с другими переменными в цикле.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 697
Баллы
113
Переформулирую. Как сделать проверку пути xpath?

Логика:
Обьявляю переменную куда кладем строковый параметр ID по пути xpath
Если путь xpath найден- работаем с ним.
Иначе пропускаем эту переменную и продолжаем работу с другими переменными в цикле.
да откуда же нам знать, как происходит работа в этой библиотеке ? такие вопросы надо задавать автору этой библиотеки.
Блин, кажись уже повторяюсь :-)
ну вот реально, кто кроме тебя и автора этой библиотеки знает что возвращается/формируется/происходит при не найденном элементе по xpath ?
делал бы как все, через методы зенки, тебе бы тут накидали уже кучу вариантов работы с xpath. ну или послали бы в тематические темы :-) это уж как повезет :-)
 
  • Спасибо
Реакции: ParadoxRU

ParadoxRU

Client
Регистрация
04.09.2019
Сообщения
19
Благодарностей
6
Баллы
3
Ок, понял.
У меня так же подключена библиотека HtmlAgilityPack.
Буду благодарен если подскажете по ней метод для проверки пути xpath (true false или null) или методами Zennoposter.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 458
Благодарностей
1 291
Баллы
113
Ок, понял.
У меня так же подключена библиотека HtmlAgilityPack.
Буду благодарен если подскажете по ней метод для проверки пути xpath (true false или null) или методами Zennoposter.
Используйте кубик парсить данные, вписываете дорогу xpath и атрибут, если нашло - выход по зеленой, не нашло - по красной. Или кубик клика (только выбираем фокус) - по той же логике будет работать, только еще и время поиска элемента увеличивается.
 
  • Спасибо
Реакции: ParadoxRU

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)