|
1 / 1 / 1
Регистрация: 21.12.2013
Сообщений: 38
|
||||||
Парсинг сайта12.01.2017, 10:34. Показов 2416. Ответов 5
Здравствуйте. Помогите пожалуйста решить следующую проблему. При парсинге я выбираю информацию по определенному классу в HTML, например w1. Но выбираются все значения с классом w1 и содержащими 1, например w11, w12 и т.д. Как сделать, чтобы выбирались значения только с w1?
0
|
||||||
| 12.01.2017, 10:34 | |
|
Ответы с готовыми решениями:
5
Парсинг сайта |
|
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
||||||
| 12.01.2017, 11:55 | ||||||
|
BronsonAG, в условии поменяйте местами проверки - можете словить NullReferenceException, если атрибут "class" отсутствует у текущего анализируемого узла.
А в идеале лучшее вообще так (проще для отладки и нагляднее):
0
|
||||||
|
1 / 1 / 1
Регистрация: 21.12.2013
Сообщений: 38
|
||||||
| 12.01.2017, 12:27 [ТС] | ||||||
|
bax_tang, Дело в том, что в классе может находиться не одно значение, а несколько, например w1 w3 w4 и еще дополнительные символы.
Пример кода HTML
0
|
||||||
|
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
|
| 12.01.2017, 12:50 | |
|
BronsonAG, значит, стоит подумать над дополнительными критериями отбора, чтобы пропускать узлы w11, w12 и т.д.
0
|
|
|
|
||||||
| 12.01.2017, 13:06 | ||||||
Сообщение было отмечено BronsonAG как решение
Решение
BronsonAG, проверку на наличие атрибута class можно вообще не выполнять, если в XPath задать условие, что этот атрибут должен присутствовать
//tr[@class]. Что касается проверки на наличие определенного класса, то можно значение атрибута просто сплитнуть по пробельным литерам и проверять наличие нужного класса в полученном массиве.
1
|
||||||
|
Администратор
|
||||||||||||||||
| 12.01.2017, 17:17 | ||||||||||||||||
|
BronsonAG, это можно только с помощью XPath запроса
//tr[contains(concat(' ', normalize-space(@class), ' '), ' w1 ')] (пробелы вокруг имени класса важны!). Плюс раз ты еще выбираешь td, то можно добавить и его для упрощения кода - //tr[contains(concat(' ', normalize-space(@class), ' '), ' w1 ')]/td
Небольшое предупреждение
На момент написания данного поста версия HtmlAgilityPack - 1.4.9.5. Библиотека же HtmlAgilityPack.CssSelectors откомпилирована под версию 1.4.9.0 и при компиляции идет перезапись библиотеки. Соотвественно нужно устанавливать старую версию HAP или копировать более новую в post build событии. В этом случае в файле конфигурации нужно указать binding redirect
Выборка с помощью этой библиотеки выглядит так:
1
|
||||||||||||||||
| 12.01.2017, 17:17 | |
|
Помогаю со студенческими работами здесь
6
Парсинг сайта Парсинг Сайта Парсинг сайта Парсинг сайта
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|