我试图得到这个元素上没有找到表元素:此页面上// * [@ 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