我正在尝试用 C# 创建一个工具,用于收集和分析来自网页/表单的数据。基本上有两种不同类型的数据。用户输入的数据和系统创建的数据(我无权访问)。
用户创建的数据保存在字段中,表单使用 ID - 因此使用 GetElementByID。我遇到的问题是获取系统创建的数据。它显示在表单上,但与 ID 无关。我可能错误地阅读/解释了 HTML,但它似乎是一个子类(我没有太多的 HTML 经验)。我正在尝试获取“提交日期”数据(靠近代码底部)。HTML 代码示例:
<div class="bottomSpace">
<div class="importfromanotherorder">
<div class="level2Panel" >
<div class="left">
<span id="if error" class="error"></span>
</div>
<div class="right">
Enter Submission ID
<input name="Submission$ID" type="text" id="Submission_ID" class="textbox" />
<input type="submit" name="SumbitButton" value="Import" id="SubmitButton" />
</div>
</div>
</div>
</div>
<div class="bottomSpace">
<div class="detailsinfo">
<div class="level2Panel" >
<div class="left">
<h5>Product ID</h5>
1234567
<h5>Sub ID</h5>
Not available
<h5>Product Type</h5>
Type 1
</div>
<div class="right">
<h5>Order Number</h5>
0987654
<h5>Status</h5>
Ordered
<h5>Date Submitted</h5>
7 17 2012 5 45 09 AM
</div>
</div>
</div>
</div>
使用 GetElementsByTagName(搜索“div”)然后使用 GetAttribute(“className”)(搜索“right”)会生成一些结果,但由于有 2 个“right”类,因此无法按预期工作。
我尝试通过 className = “detailsinfo” 进行搜索,我可以找到它,但我不确定如何才能找到“正确”的课程。我尝试了兄弟姐妹和孩子,但结果似乎不起作用。下一个可能的问题是,日期数据实际上是属于“right”类的文本,而不是“Date Submitted”元素。
所以基本上,我很好奇如何获得我正在寻找的数据的最佳方法。我是否需要获取所有类“正确”文本,然后尝试提取日期字符串?
如果信息过多或所需信息不足,我们深表歉意:) 提前致谢!
编辑:添加了如何使用 C# 调用 GetElementsByTagName - 根据 Icarus 的评论。
HtmlDocument doc = webBrowser1.Document;
HtmlElementCollection elemColl = doc.GetElementsByTagName("div");