c# - 使用 href html 敏捷包解析表
问题描述
嗨,我想解析表格,但无法完全获取信息
我使用了以下不返回 href 链接的代码
HtmlNode table = doc.DocumentNode.SelectSingleNode("//table[1]//tbody");
foreach (var cell in table.SelectNodes(".//tr/td"))
{
string someVariable = cell.InnerText;
Debug.WriteLine(someVariable);
}
我也需要获得href,我该怎么做?
<table>
<tbody>
<tr>
<td class="a1">
<a href="/subtitles/joker-2019/farsi_persian/2110062">
<span class="l r positive-icon">
Farsi/Persian
</span>
<span>
Joker.2019.WEBRip.XviD.MP3-SHITBOX
</span>
</a>
</td>
<td class="a3">
</td>
<td class="a40">
</td>
<td class="a5">
<a href="/u/695804">
meisam_t72
</a>
</td>
<td class="a6">
<div>
►► زیرنویس از میثم ططری - ویرایش شده ◄◄ - meisam_t72 کانال تلگرام </div>
</td>
</tr>
</tbody>
</table>
解决方案
在您的内部,您foreach
需要检查单元格的内容是否包含<a>
标签。如果它包含从这个标签中获取属性 href。
像这样的东西(未经测试)
foreach (var cell in table.SelectNodes(".//tr/td"))
{
string someVariable = cell.InnerText;
Debug.WriteLine(someVariable);
var links = cell.SelectNodes(".//a");
if (links == null || !links.Any())
{
continue;
}
foreach (var link in links)
{
var href = link.Attributes["href"].Value;
// do whatever you want with the link.
}
}
推荐阅读
- python - AWS Lambda 从 Codepipeline 调用权限被拒绝错误
- javascript - 文字本身不会加粗
- vb.net - VB.NET:如何在将标签定义为变量时仅从标签中获取数值
- javascript - Javascript,HTML:设置网页移动到 about:blank 页面并禁用返回(杀死页面)
- reactjs - 不推荐使用 btoa 时如何在 ReactJS 中编码 base 64 字符串?
- powershell - 远程访问 DC 安全事件完整数据
- angular - 来自对象数组的角度显示表数据,但从另一个 API 调用更新最后一列返回未定义的值
- reactjs - 无法从 VS Code 运行 Android 模拟器
- zsh - 是否可以在 TIG 中直接从键绑定中搜索特定字符串?
- python - 如何使用唯一索引索引列表中的每个元素