我正在嘗試在C#中創建一個工具,該工具收集並分析網頁/表單中的數據。基本上有兩種不同類型的數據。用戶輸入的數據和系統創建的數據(我無權訪問)。從HTML子類中獲取數據
用戶創建的數據保存在字段中,表單使用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(搜索「格」),然後使用的getAttribute(「類名」)(搜索「右」)產生了一定的效果,但有2個「權」類,它不按預期工作。
我試過通過className =「detailsinfo」進行搜索,我可以找到它,但我不知道如何才能進入「正確」類。我嘗試了兄弟姐妹和孩子,但結果似乎沒有奏效。下一個可能的問題是,日期數據實際上是屬於「右」類的文本,而不是「提交日期」的元素。
所以基本上,我很好奇最好的方法是如何獲得我正在尋找的數據。我是否需要獲得所有類的「正確」文本,然後嘗試提取日期字符串?
道歉,如果有太多的信息或沒有足夠的所需的信息:)提前致謝!
編輯:添加如何使用C#調用GetElementsByTagName - 根據Icarus的評論。
HtmlDocument doc = webBrowser1.Document;
HtmlElementCollection elemColl = doc.GetElementsByTagName("div");
目前尚不清楚如何你使用C#調用'getElementsByTagName'。 – Icarus 2012-07-23 15:48:33