C# получить значение из скрипта, используя WebRequest - PullRequest
1 голос
/ 15 января 2020

Мне нужно получить значение из скрипта в ответе Webrequest. Код выглядит так:

<script type="text/javascript">
        var CUS = CUS || {};
        CUS.namespace('CUS.model');
        CUS.model.page = {"Key":"needed Value"};
<script>

Я могу десериализовать это json, если получу, есть ли какое-нибудь хорошее использование для этого процесса получения?

Редактировать: Позвольте мне попытаться пожаловаться; Я получаю ответ от HttpWebRequest и его html документ, как показано ниже

string result; 

HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); 
document.LoadHtml(result); 

переменная "result" имеет:

    <script type="text/javascript">
       var CUS = CUS || {}; 
       CUS.namespace('CUS.model');
       CUS.model.page = {"Key":"needed Value"}//It seems like json!; 
    <script>

Мне нужно получить после "CUS.model .page = "вещь.

1 Ответ

0 голосов
/ 15 января 2020

Вы можете использовать регулярное выражение для извлечения ключа.

string result = @"
<script type=""text/javascript"">
    var CUS = CUS || {}; 
    CUS.namespace('CUS.model');
    CUS.model.page = {""Key"":""needed Value""}//It seems like json!; 
<script>";

Match match = Regex.Match(input, @"(CUS\.model\.page\s*=\s*)({""Key"":"")(.*)(""})");
string key = match.Success ? match.Groups[3].Value : null;

Вы можете адаптировать регулярное выражение, чтобы сделать его более устойчивым в случае изменения содержимого тега script в будущем.

...