将 HTML 标记之间的值读取到 C# winform 应用程序中

本文关键字:winform 应用程序 读取 HTML 之间 | 更新日期: 2023-09-27 18:33:46

我正在尝试从推特页面读取值。页面源如下所示

 <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
    <title>Twitter / Authorize an application</title>
  ...........
    <div id="bd" role="main">
<p class="action-information">You've granted access to yourapp!</p>
<div id="oauth_pin">
  <p>
    <span id="code-desc">Next, return to yourapp and enter this PIN to complete the authorization process:</span>
    <kbd aria-labelledby="code-desc"><code>58643144</code></kbd>
  </p>
</div>

    </div>
   ..............
  </body>
</html>

我正在尝试将"PIN"的值放入我的 C# winform 应用程序中。表示,代码标签之间的值在以下行

<kbd aria-labelledby="code-desc"><code>58643144</code></kbd>

我已经尝试了下面的代码。但这不起作用,因为 PIN 包含在div 标签中并且没有 ID。 请帮助从 html 网页获取 PIN 的值。谢谢

string verifier = browser.TextField(Find.ById("code-desc")).Value

将 HTML 标记之间的值读取到 C# winform 应用程序中

为什么不尝试某种HTML解析器,并在您的案例代码中为特定标签内的值提供

下面是一个指向可用于 C# 应用的良好 HTML 分析器的链接。

http://htmlagilitypack.codeplex.com/

StringBuilder codew = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//code/text()"))
{
    codew.Append(node.Text.Trim());
}
string foundcode = sb.ToString();

试试

string verifier = browser.TextField(Find.ById("code-desc")).Text 

而不是

string verifier = browser.TextField(Find.ById("code-desc")).Value