【问题标题】:how to retrieve specific values from httpresponse, httpclient C#如何从httpresponse,httpclient C#中检索特定值
【发布时间】:2020-07-08 20:04:34
【问题描述】:

我正在通过 httpclient - C# 访问 .aspx 页面。因此,作为响应,我们得到了重定向的页面。下面提到的是该响应的一部分,如何检索突出显示的值并将它们存储在模型中。

    <div id="SchoolInfo">
    **ABES School** (**13895**)<br/>Tel (987) 334 5533  <br />
    <form name="form2" id="form2" method="post">
        <input type="hidden" name="MyTargetID" id="MyTargetID" value="" />
        <input type="hidden" name="MyArgument" id="MyArgument" value="" />
        <input name="dcb46ec8-be16-4932-8a01-49cd075271a6$hdnOldSelection" type="hidden" id="dcb46ec8-be16-4932-8a01-49cd075271a6_hdnOldSelection" value="73400" />
    Switch School Year:
        <select name="dcb46ec8-be16-4932-8a01-49cd075271a6$ddlSwitchSessionYear" id="dcb46ec8-be16-4932-8a01-49cd075271a6_ddlSwitchSessionYear" onchange="confirmsessionchange(this);">
        <option selected="selected" value="**73400**">**2020-2021**</option>

学年:2020-2021 学校编号:73400 学校代码:13895 学校名称:ABES学校

【问题讨论】:

  • 因为你本质上是抓取html然后解析html(使用librarynot regex)来获取你想要的数据.

标签: c# html asp.net httpclient httpresponse


【解决方案1】:

要从 html 文档中检索数据,您可以使用 Html Agility Pack

您的代码将如下所示:

var html = @"http://html-agility-pack.net/";
HtmlWeb web = new HtmlWeb();
var htmlDoc = web.Load(html);
var node = htmlDoc.DocumentNode.SelectSingleNode("//div[@id='SchoolInfo']");
...

那么你应该使用选择器并深入到其他节点。

最后,要检索学校名称 + 学校代码和学年,您将需要节点的 InnerText 属性。在您的示例中,它们被粘在一起,因此看起来您需要将它们分开。为此,请使用正则表达式。

要检索学校 ID,您可以使用节点的 GetAttributeValue 方法。

【讨论】:

  • 感谢您的回答。真的很好用,我试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多