Спарсить значение из тега script



  • В ответе запроса находится тег script с нужными мне значениями, которые имеют вид:

    <script type='text/javascript'>
    	//<![CDATA[
    		/* ---- URLs ---- */
    		ipb.vars['secure_hash'] 		= '069a53c17e23b274554ceb4d488e174f';
    		ipb.vars['session_id']			= 'd0dd9451ccb4cf933f7c802b47b6b200';
    

    С регулярками и js не дружу, поэтому возникли трудности с парсингом этих значений. Подскажите, как правильно мне спарсить эти значения?



  • Додумал сам, вытащил с помощью первого вхождения в регулярке

    session_id']			= '(.*?)'
    


  • @Gonsalez said in Спарсить значение из тега script:

    Додумал сам, вытащил с помощью первого вхождения в регулярке

    session_id']			= '(.*?)'
    

    Спарсить лучше было бы через xpath



  • @Fox Снова возникла похожая ситуация, но теперь строка имеет вид

    ipb.vars['member_id']			= parseInt( 28836 );
    

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



  • @Gonsalez said in Спарсить значение из тега script:

    @Fox Снова возникла похожая ситуация, но теперь строка имеет вид

    ipb.vars['member_id']			= parseInt( 28836 );
    

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

    Вот хороший мануал по xpath, я сам по нему изучал xpath с нуля
    https://docs.google.com/document/d/1PdfKMDfoqFIlF4tN1jKrOf1iZ1rqESy2xVMIj3uuV3g/pub

    Если тег script один, то подойдёт такое выражение:

    //script
    


  • @Fox объясни нубу xD нафига тут xpath, если надо спарсить часть текста из тега script ?



  • @UserTrue said in Спарсить значение из тега script:

    @Fox объясни нубу xD нафига тут xpath, если надо спарсить часть текста из тега script ?

    Ну ситуации разные бывают, может там страница тяжёлая и регулярка будет сильно нагружать систему или ложно срабатывать где нибудь..



  • @Fox said in Спарсить значение из тега script:

    @UserTrue said in Спарсить значение из тега script:

    @Fox объясни нубу xD нафига тут xpath, если надо спарсить часть текста из тега script ?

    Ну ситуации разные бывают, может там страница тяжёлая и регулярка будет сильно нагружать систему или ложно срабатывать где нибудь..

    Ну может быть, но в большинстве случаев парсить тег скрипт xpath, а потом его еще раз парсить регуляркой ради одного значения это перебор )



  • @Fox то, что выражение будет //script я понимаю, а вот дальше... то, что мне нужно спарсить, это ведь, как понимаю, не атрибуты тега, поэтому и загвоздка.
    Проблему все таки решил, сделав регулярное выражение с помощью этого инструмента https://bablosoft.github.io/RegexpConstructor/#!/input полезная штука
    За мануал спасибо, обязательно почитаю



  • @UserTrue said in Спарсить значение из тега script:

    @Fox said in Спарсить значение из тега script:

    @UserTrue said in Спарсить значение из тега script:

    @Fox объясни нубу xD нафига тут xpath, если надо спарсить часть текста из тега script ?

    Ну ситуации разные бывают, может там страница тяжёлая и регулярка будет сильно нагружать систему или ложно срабатывать где нибудь..

    Ну может быть, но в большинстве случаев парсить тег скрипт xpath, а потом его еще раз парсить регуляркой ради одного значения это перебор )

    Да, согласен

    @Gonsalez said in Спарсить значение из тега script:

    @Fox то, что выражение будет //script я понимаю, а вот дальше... то, что мне нужно спарсить, это ведь, как понимаю, не атрибуты тега, поэтому и загвоздка.
    Проблему все таки решил, сделав регулярное выражение с помощью этого инструмента https://bablosoft.github.io/RegexpConstructor/#!/input полезная штука
    За мануал спасибо, обязательно почитаю

    Хорошо, но регулярки лучше всё таки изучить, что бы составлять их самостоятельно. Это упростит работу в будущем, вот например хорошая шпаргалка:
    https://www.exlab.net/tools/sheets/regexp.html


Log in to reply