我想從互聯網獲取數據,並且我一直在用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