将 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# 应用的良好 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