Форум программистов, компьютерный форум, киберфорум
XML/XSL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/41: Рейтинг темы: голосов - 41, средняя оценка - 4.63
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175

Составить XPath путь

13.04.2021, 20:55. Показов 8223. Ответов 46

Студворк — интернет-сервис помощи студентам
Всем привет подскажите как составить xpatch мне нужны значения 66.00 и 1.03 они находятся в классе table__col _type_btn _type_normal по классу искать умею, но мне выдает все значения, а нужен xpatch как к к первому значению, так и к третьему и что бы лишних не было данных.
Кликните здесь для просмотра всего текста
HTML5
1
<tbody class="table__body"><tr class="table__row _type_segment _type_nocaptions" style="background-color: rgb(97, 154, 56);"><th colspan="2" class="table__col _type_head _size_long"><div class="table__col-inner table__event-title"><span class="table__sport-icon icon _type_sport" style="background-image: url(&quot;//origin.bkfon-resources.com/ContentCommon/Logotypes/SportKinds/new-design/white_new/1-football.svg&quot;);"></span><span class="table__flag-icon icon icon_643688" style="background-image: url(&quot;//origin.bkfon-resources.com/ContentCommon/NewFlags/England.svg&quot;);"></span><div class="table__title-text" title="Футбол. Англия. Чемпион-Лига">Футбол. Англия. Чемпион-Лига</div></div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">1</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">X</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">2</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">1X</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">12</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">X2</div></th><th class="table__col _type_head _type_param"><div class="table__col-inner">Фора</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">1</div></th><th class="table__col _type_head _type_param"><div class="table__col-inner">Фора</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">2</div></th><th class="table__col _type_head _type_param"><div class="table__col-inner">Тотал</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">Б</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">М</div></th><th class="table__col _type_head _type_value"><div class="table__col-inner">Доп</div></th></tr><tr class="table__row"><td class="table__col _pos_first _indent_1"><div class="table__btn icon _type_normal _icon_arrow-right-gray _state_collapsed"></div><a class="table__star"><i class="table__star-icon icon _type_normal _icon_star"></i></a></td><td colspan="0" class="table__col _size_long"><div class="table__match-title _type_with-details _indent_1"><span class="table__event-number">44410</span><a class="table__match-title-text" href="/live/football/12018/27368915"><div class="table__match-title-text">Хаддерсфилд Т — Борнмут</div></a></div><div class="table__timescore"><div class="table__timescore-left-container"><div class="table__channels"><div class="table__channel"><span class="icon _type_normal _size_17 _icon_channel _icon_channel-6 _sport_1"></span></div></div><a class="table__betradar-link-icon" title="Статистика"><span class="icon _type_normal _size_17 _icon_betradar_blue"></span></a><div class="table__score"><span class="table__score-normal">0:2</span><span class="table__score-more" title="(0-2)">(0-2)</span></div></div><div><div class="table__time"><span class="table__time-icon icon _type_normal _icon_time-gray"></span><span class="table__time-text _type_suspended" seconds="2700" direction="0" updatems="">45:00</span></div></div></div></td><td class="table__col _type_btn _type_normal">66.00</td><td class="table__col _type_btn _type_normal">18.00</td><td class="table__col _type_btn _type_normal">1.03</td><td class="table__col _type_btn _type_normal">12.00</td><td class="table__col _type_btn"></td><td class="table__col _type_btn"></td><td class="table__col _type_fora">+2.5</td><td class="table__col _type_btn _type_normal">1.60</td><td class="table__col _type_fora">-2.5</td><td class="table__col _type_btn _type_normal">2.30</td><td class="table__col _type_fora">3.5</td><td class="table__col _type_btn _type_normal">2.10</td><
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.04.2021, 20:55
Ответы с готовыми решениями:

Существует ли такой редактор, который показывает полный XPath путь к тегу?
То есть выделил например таблицу, и увидел до неё XPath путь. Такое есть? Добавлено через 1 минуту Например вот я использую XPath...

Как в lxml составить запрос xpath?
import requests import lxml.html import re session = requests.session() openUrl = session.get('http://www.artlebedev.ru/') ...

Почему xpath в xpather работает как надо, а html.xpath обрезает последний элемент
Тут все ок. http://xpather.com/QdzC7iC7 Добавляю выражение для скрипта, но там обрезается артикул: import requests_html from...

46
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
18.04.2021, 00:11  [ТС]
Студворк — интернет-сервис помощи студентам
Вот сам проект =) Parser.rar
0
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
18.04.2021, 01:27  [ТС]
diadiavova, перепроверил всё через отладчик и структуру этих html где были проблемы, там нет значений, хотя классы присутствуют, добавил проверку на null и всё ок стало =) Спасибо за помощь =)
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
18.04.2021, 08:36
Цитата Сообщение от xellan24rus Посмотреть сообщение
Я отталкиваясь от 2 вообще не смог путь составить, хотя этот метод хороший и без дублей
Я говорю о том, что не обязательно все делать через xpath. Ну не знаешь как составить путь, можно индекс вычислить обычным способом, например так
C#
1
2
3
                int team2Index = 0;
                while (ths[team2Index].InnerText != "2") ++team2Index;
                ++team2Index;
Цитата Сообщение от xellan24rus Посмотреть сообщение
И как вы говорили что лучше кодом объяснить чем словами что нужно =) Хотя и кодом не всегда легко сказать что от него нужно =)
Лучше всего объяснить словами и проиллюстрировать сказанное кодом.
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
18.04.2021, 10:34
xellan24rus, добавил в твой проект новую форму с гридом и загрузил в него данные с помощью XSLT. Изучи на досуге, думаю будет интересно.
Вложения
Тип файла: zip forum.zip (3.25 Мб, 6 просмотров)
1
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
18.04.2021, 11:13  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Я говорю о том, что не обязательно все делать через xpath. Ну не знаешь как составить путь, можно индекс вычислить обычным способом, например так
Вникаю по мере возможности =) Сейчас для проверки того что понял, сделал парсер на другой сайт с играми =) Всё получилось за пару часов =) Но там индекс на поведу второй всегда в одном месте, поэтому не успел проверить метод с индексом и перебора, хотя суть понял =)

Добавлено через 1 минуту
Цитата Сообщение от diadiavova Посмотреть сообщение
добавил в твой проект новую форму с гридом и загрузил в него данные с помощью XSLT. Изучи на досуге, думаю будет интересно.
Посмотрел что и как =) Почитаю как это делается, тем более пример для расшаривания есть =) Спасибо =) По написанию xslt кажется крутой штукой)
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
18.04.2021, 11:37
Цитата Сообщение от xellan24rus Посмотреть сообщение
По написанию xslt кажется крутой штукой)
Главное его достоинство - декларативность. Чтобы сформировать код большого и сложного документа, используя язык типа C# надо очень сильно попотеть и там очень сложно не ошибиться. А XSLT сам является хмл-словарем, так что можно желаемый документ просто вставить в него и далее те, части, которые нужно формировать динамически заменять конструкциями языка или выносить в отдельные шаблоны. Хотя поначалу этот язык может ввести в ступор ))

Добавлено через 22 секунды
Цитата Сообщение от xellan24rus Посмотреть сообщение
По написанию xslt кажется крутой штукой)
Главное его достоинство - декларативность. Чтобы сформировать код большого и сложного документа, используя язык типа C# надо очень сильно попотеть и там очень сложно не ошибиться. А XSLT сам является хмл-словарем, так что можно желаемый документ просто вставить в него и далее те, части, которые нужно формировать динамически заменять конструкциями языка или выносить в отдельные шаблоны. Хотя поначалу этот язык может ввести в ступор ))
1
 Аватар для xellan24rus
364 / 296 / 55
Регистрация: 08.04.2020
Сообщений: 1,175
18.04.2021, 12:36  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Главное его достоинство - декларативность. Чтобы сформировать код большого и сложного документа, используя язык типа C# надо очень сильно попотеть и там очень сложно не ошибиться. А XSLT сам является хмл-словарем, так что можно желаемый документ просто вставить в него и далее те, части, которые нужно формировать динамически заменять конструкциями языка или выносить в отдельные шаблоны. Хотя поначалу этот язык может ввести в ступор ))
Я про блоки кода понял, а остальное, так как это в новинку =) Буду изучать на досуге =) Хорошо объяснили всё и даже больше, спасибо за это =) Теперь саму структуру поиска и т.п понял =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2021, 12:36

Как правильно составить XPATH-запрос для HtmlAgillityPack?
&lt;div id=&quot;adv_140751&quot; class=&quot;adv_short radius_10&quot;&gt; &lt;ul class=&quot;edit-menu&quot;&gt; &lt;li class=&quot;edit-menu-item-empty&quot;&gt;&lt;/li&gt; ...

Доработка макроса: составить путь к файлу из двух ячеек по условию
имеется макрос который с используя цикла копирует поочереди 3 книги за определенную дату(дата и есть название книги) и производит...

Составить дифференциальное уравнение и вычислить тормозной путь поезда при торможении на спуске
Скласти диференційне рівняння та обчислити гальмівний шлях потягу при гальмуванні на спуску, якщо відомі значення перерахованих постійних...

Составить программу которая выводит полный путь к исполняемому файлу этой программы
В билете такой вопрос. Вообще не понимаю где у программы исполняемый файл и что нужно сделать.

Th:replace не воспринимает рендереный путь. Но работает, если путь захардкодить
Thymeleaf &lt;p th:text=&quot;'themes/'+${theme}+'/general/footer::footer(theme=' + ${theme} +')'&quot;&gt;test&lt;/p&gt; &lt;footer...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Новые блоги и статьи
Хабру пора сливаться, время пришло, оно прийдёт за всеми, но ему давно пора (Хабр - галимый плагиат и кликбейт с саморекламой).
Hrethgir 04.08.2026
Стирают публикации с эффективными алгоритмами (в частности по алгоритму обхода дерева, был опубликован там 3-го мая, в зипапке . . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru