Extraindo strings de funções javascript

1

Eu tenho vários arquivos HTML contendo uma função javascript como esta:

<script type='text/javascript'>eval(function(...............
..............................
781a802d711afb9fe305d5b2e6|nlgphp5ee35huxvkc5xui4xl|gr6weglhvfovda4zodalt7j7glkt5ua|hojehp5ee35huxvkc5xui4xlugr6weglh|vfovl443odalt7klrfbtu4q|mystring123|data|new'.split('|')))
</script>
.......................
<div class="description">mytitle123</div>

Eu gostaria de extrair a parte entre o | e | data | new (neste caso "mystring123"), e também o título "mytitle123". A primeira string está sempre localizada em um eval e termina com o | data | delimitador, mas as cadeias alfanuméricas antes de mudar.

    
por Mark Roi 16.06.2018 / 16:13

1 resposta

1

Os documentos XML / HTML devem ser processados com as ferramentas adequadas do analisador.

xmllint abordagem (com sed de suporte para pesquisar / substituir dentro do texto arbitrário do corpo da tag <script> ):

$ xmllint --html --xpath '//script/text()' input.html | sed -En 's/.*\|([^|]+)\|data\|new.*//p'
mystring123
$ xmllint --html --xpath '//div[@class="description"]/text()' input.html
mytitle123
    
por 16.06.2018 / 16:49