Как извлечь часть текста в Нокогири - PullRequest
0 голосов
/ 22 февраля 2019

Надеюсь, это проясняется здесь, я использую нокогири для извлечения данных javascript.Все работает отлично, за исключением одной маленькой детали, которую нужно решить, и я не знаю, как удалить переменные данные.

Я хочу извлечь часть текста

<script>
    window.pageData={JsonDataType}
</script>

Мне нужен только вывод {JsonDataType}.мой код, который, кстати, получает все

script = page.at("//head/script[3]").text

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Ответ зависит от контекста.

Если вы четко знаете структуру страницы, вы можете сделать это так:

script = page.at("//head/script[3]").text.sub(/window\.pageData=/, "") #=> "{JsonDataType}"
0 голосов
/ 22 февраля 2019

Вы можете обратиться к regex для выполнения вашей задачи, например:

match = script.match(/window\.pageData=(?<data>.*)/i), и данные будут записаны в match[:data].

Я предполагаю, что script - строка, иначе правило регулярных выражений может не работать.

...