как получить определенные c значения из httpresponse, httpclient C# - PullRequest
0 голосов
/ 08 июля 2020

Я попадаю на страницы .aspx через httpclient - C#. В ответ мы получаем перенаправленные страницы. Ниже приводится часть этого ответа: «Как мне получить выделенные значения и сохранить их в модели».

    <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 Школа

1 Ответ

0 голосов
/ 09 июля 2020

Для получения данных из 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']");
...

Тогда вы следует поиграть с селекторами и go глубже к другим узлам.

Наконец, чтобы получить название школы + код школы и учебный год, вам понадобится свойство InnerText узла. В вашем примере они слиплись, поэтому похоже, что вам нужно их разделить. Для этого используйте регулярные выражения.

Для получения идентификатора школы вы можете использовать метод GetAttributeValue узла.

...