【问题标题】:C# get a value from script using WebRequestC# 使用 WebRequest 从脚本中获取值
【发布时间】:2020-05-02 04:05:30
【问题描述】:

我需要在 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); 

“结果”变量有:

    <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 =”的东西。

【问题讨论】:

  • webrequest 没有 javascript 引擎
  • @JaromandaX 但它是一个响应及其字符串。我需要从字符串结果中读取 {"Key":"needed Value"} 值。
  • 请澄清。我没有看到任何 json,也没有任何请求。从头开始,你在做什么,你得到了什么,你想要的结果到底是什么?
  • 你好@Crowcoder。让我试着抱怨;我从 HttpWebRequest 得到响应,它的 html 文档如下所示string result; HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); document.LoadHtml(result); “result”变量有:&lt;script type="text/javascript"&gt; var CUS = CUS || {}; CUS.namespace('CUS.model'); CUS.model.page = {"Key":"needed Value"}; &lt;script&gt;我需要在“CUS.model.page =”之后得到。
  • 哦,对了,你对 JSON 短语的使用让我很困惑

标签: javascript c# asp.net httpwebrequest httpwebresponse


【解决方案1】:

您可以使用正则表达式来提取密钥。

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;

您可以调整正则表达式以使其更加健壮,以防脚本标签中的内容将来发生变化。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    相关资源
    最近更新 更多