我試圖得到這個元素上沒有找到表元素:此頁面上// * [@ ID =「表匹配」] /表:http://www.oddsportal.com/matches/soccer/20140221/HTML解析器網頁
我想獲取包含匹配的表格。表格在「啓動時間」選項卡下開始。我正在尋找的元素是'table class ='table-main'',它位於元素'div id =「table-matches」內部「style =」display:block;「'
我試過了HtmlAgilityPack在C#中的文檔,我可以找到'div'元素,但它表示它沒有任何子節點(應該有一個表子節點)。如果我嘗試獲取表格,結果爲空。下面是代碼:
var webGet = new HtmlWeb();
var document = webGet.Load("http://www.oddsportal.com/matches/soccer/20140221/");
var div = document.DocumentNode.SelectNodes("//div[@id='table-matches']");
var table = document.DocumentNode.SelectNodes("//*[@id='table-matches']/table");
var table2 = document.DocumentNode.SelectNodes("//table");
所以,DIV變量包含的div元素(但它沒有子節點),表變量爲空,甚至表2變量包含4個元素,但他們都不是所需的表。
我覺得HtmlAgilityPack存在問題,並試圖用Python獲取整個網頁。所以我把整個HTML文檔都放在一個文本文件中,並搜索了文本文件,我可以找到div元素,但它是空的。裏面沒有表格元素。這是爲什麼?爲什麼我可以在Chrome或Internet Explorer中看到table元素,但是當我下載html時,沒有這樣的元素?
這裏是Python代碼:
url = urllib.urlopen("http://www.oddsportal.com/matches/")
document = url.read()
htmlOddsPortal = open("htmlOddsPortal.txt", "w")
htmlOddsPortal.write(document)
下面是最終的文本文檔中的元素:
<div id="table-matches"></div> <!-- END PAGE BODY -->
謝謝你的回答。我最終在Windows窗體中使用WebBrowser。以下是未來參考的代碼: webBrowser.Navigate(「http://www.oddsportal.com/matches/soccer/20140221/」); HtmlElementCollection elements = webBrowser.Document.GetElementsByTagName(「table」); – user2266310