Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Специалистам по парсингу. По языку запросов ХPath.


Автор: danminin 4.12.2019, 13:57
На странице https://www.mql5.com/ru/signals/561919 нужно спарсить это значение:

user posted image

Это svg-графика.

Если нажать в браузере F12, то показывает такое:

user posted image

Какой ХPath запрос нужно задать?

И возможно ли вообще парсить значения с svg-графики?

(пользуюсь программой Screaming Frog SEO Spider)

пс: вариант   //*[name()='text'][8]//*[name()='tspan'][2]   не сработал
отсюда я делаю предположение, что программа Screaming Frog SEO Spider просто не умеет работать с svg-графикой.

Автор: whatisnot 6.12.2019, 16:42
А РНР тут причем?

Автор: danminin 6.12.2019, 18:07
Цитата(whatisnot @ 6.12.2019,  16:42)
А РНР тут причем?

не знаю. просто не знал в каком разделе разместить эту тему.  smile 

Автор: ksnk 7.12.2019, 01:00
С svg Xpath работает странновато 
Если скопировать XPath из консоли отладки, то получится вот такое что-то
Код

//*[@id="radarChart"]/svg/text[8]/tspan[2]

Однако оно не работает, а вот такое - работает
Код

//*[@id="radarChart"]/*[name()="svg"]/*[name()="text"][8]/*[name()="tspan"][2]

Тоесть любой элемент svg требуется подменить на конструкцию с поиском по имени... 
За что, и про что на ровном месте такой геморрой - тайна сия велика есть...

Автор: danminin 8.12.2019, 08:23
Цитата(ksnk @ 7.12.2019,  01:00)
Однако оно не работает, а вот такое - работает
Код

//*[@id="radarChart"]/*[name()="svg"]/*[name()="text"][8]/*[name()="tspan"][2]

Тоесть любой элемент svg требуется подменить на конструкцию с поиском по имени... 
За что, и про что на ровном месте такой геморрой - тайна сия велика есть...

да работает. но в моей программе Screaming Frog SEO Spider оно не работает.
не умеет эта программа свг графику читать(

Автор: ksnk 8.12.2019, 11:16
Screaming Frog, если не ошибаюсь, просто качает исходный текст страницы и пытается его разобрать. А в исходнике никакого svg нет, он рисуется скриптами.
Убеди лягуху искать вот этот кусок текста по исходникам
Код

{
                                value : 34.5,
                                name : 'Максимальная просадка',
                                title : '...

Автор: danminin 8.12.2019, 18:43
Цитата(ksnk @ 8.12.2019,  11:16)
Screaming Frog, если не ошибаюсь, просто качает исходный текст страницы и пытается его разобрать. А в исходнике никакого svg нет, он рисуется скриптами.
Убеди лягуху искать вот этот кусок текста по исходникам
Код

{
                                value : 34.5,
                                name : 'Максимальная просадка',
                                title : '...


Нашел такое содержимое в исходнике:

value : 34.5,

name : 'Максимальная просадка',

title : 'Денежная просадка показывает зафиксированную максимальную просадку в денежном выражении и является наибольшим перепадом между последним максимумом и текущим минимумом. Может превышать абсолютную просадку и дает представление о сумме возможного проигрыша даже при торговле с прибыльным результатом. В скобках дается значение в процентах на момент достижения просадки. '

-------------------------------------------------------------------------------------

А как ХPath задать, чтобы вытянуть эту цифру 34,5, не знаю...

В программе есть  еще поиск по CSSPAth, и по Regex.
Может ими как-то воспользоваться?

Автор: danminin 9.12.2019, 11:19
Цитата(ksnk @ 8.12.2019,  11:16)
Screaming Frog, если не ошибаюсь, просто качает исходный текст страницы и пытается его разобрать. А в исходнике никакого svg нет, он рисуется скриптами.
Убеди лягуху искать вот этот кусок текста по исходникам
Код

{
                                value : 34.5,
                                name : 'Максимальная просадка',
                                title : '...

Я вообще не знаю, что такое value, name и title. И как их брать со страницы с помощью XPath.

Автор: ksnk 9.12.2019, 14:23
Это текст внутри вставки javascript на странице. Вероятно, искать нужно регуляркой, так как Xpath тут будет бессилен. Какой синтаксис регулярок у лягухи - не в курсе. Для php это было бы что-то вроде
"/value : ([\.\d]+),\s+name : 'Максимальная просадка'/siu",

Автор: danminin 9.12.2019, 15:32
Цитата(ksnk @ 9.12.2019,  14:23)
Это текст внутри вставки javascript на странице. Вероятно, искать нужно регуляркой, так как Xpath тут будет бессилен. Какой синтаксис регулярок у лягухи - не в курсе. Для php это было бы что-то вроде
"/value : ([\.\d]+),\s+name : 'Максимальная просадка'/siu",

Спасибо за наводку.
Почитаю про регулярные выражения в Screaming Frog SEO Spider.

Автор: danminin 9.12.2019, 19:01
Цитата(ksnk @ 9.12.2019,  14:23)
Это текст внутри вставки javascript на странице. Вероятно, искать нужно регуляркой, так как Xpath тут будет бессилен. Какой синтаксис регулярок у лягухи - не в курсе. Для php это было бы что-то вроде
"/value : ([\.\d]+),\s+name : 'Максимальная просадка'/siu",

Спасибо.

Это регулярное выражение подошло:

value : ([\.\d]+),\s+name : 'Максимальная просадка'

Автор: Xahina 26.12.2020, 18:24
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)