我想从互联网获取数据,并且我一直在用HTML解析,现在我需要xpath从表中提取它。所以我想从第二行的第二行提取数据。 ?我会怎么做,我写了这个://table[1]/tr[10]/td[2]
,但它并没有显示任何东西xpath帮助任何一个?
感谢
我想从互联网获取数据,并且我一直在用HTML解析,现在我需要xpath从表中提取它。所以我想从第二行的第二行提取数据。 ?我会怎么做,我写了这个://table[1]/tr[10]/td[2]
,但它并没有显示任何东西xpath帮助任何一个?
感谢
的问题是,HTML是不是XML,尽管任何相似之处。这就是为什么你通常不能使用XML解析器解析HTML(这是使用大多数XPath实现所必需的)。
一种选择是使用类似于TagSoup(Java),Beautiful Soup(Python)或其他平台的类似库。这些库允许将HTML解析为XML,这意味着标准XML库可用于对数据进行操作(XPath,XSLT,DOM操作,SAX事件等)。
另一种选择是是尝试使用类似xmllint(与--html
和--xmlout
选项)。这会将HTML转换为正确的XML,允许您使用任何您想要的XML工具。
尽管可以用DOM解析器解析HTML。在XML解析器中,有效的XHTML也应该没问题。目前还不清楚他们在使用什么。 – Phil 2011-03-09 04:29:26
XML解析器(DOM,SAX,push,pull等)的类型与您是否可以解析HTML无关。如果它不是格式良好的XML(通常不是HTML),那么你就不能用XML解析器解析它。但XHTML *是* XML,因此您可以使用任何XML解析器解析它。 – 2011-03-09 04:35:46
有很多可以处理HTML的DOM解析器。例如,PHP的DOMDocument以及大多数JavaScript引擎中内置的DOMDocument。 – Phil 2011-03-09 05:18:16
会不会第一个表(从你的问题假设)的第二行的第二列是
//table[1]/tr[2]/td[2]
这不考虑任何<th>
元素可能存在。
真的不知道为什么你指定的第十行(tr[10]
)
u能提供HTML的,你需要遍历结构? – 2011-03-09 04:24:26