2017-08-17 64 views
-1

我想從this鏈接中提取電影的發佈日期。c#通過html-agility-pack解析wikipedia的數據

問題是它直接在<td>標記中給出,它沒有類或id。我能想到的唯一可能的解決方案是使用style標籤來提取數據,但我不知道如何去做。

這裏是我的代碼

url = "https://en.wikipedia.org/wiki/" + textBox1.Text.Replace(" ", "_"); 
try 
{ 
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes(/*?*/)) 
    { 
     label1.Text+=node.InnerText; 
    }         
} 
catch (Exception ex3) { } 

請幫幫忙!

+1

爲什麼不直接使用[API](https://en.wikipedia.org/w/api.php)?或者因爲你想獲得關於電影的信息[一些電影數據庫的API](https://developer.fandango.com/Rotten_Tomatoes)?老實說,下載一個維基頁面並手動解析它將成爲我最後一件**事情。 –

+0

@Manfred Radlwimmer它的sorta項目,我只允許使用html-agility-pack – Kabeer

+0

如果你認爲它是某種學校作業,那麼誰教你的是帶領你走上一條錯誤的道路。 –

回答

-1

以下XPath表達式爲您提供您所需要的元素:

//*[@id="mw-content-text"]/div/table[1]/tbody/tr[14]/td 

臨提示:打開Chrome調試工具,瀏覽到您正在搜索的元素,點擊鼠標右鍵,點擊「複製>複製XPath」。

建議:XPath表達式看起來很脆弱。有時試圖用RegEx提取HTML的特定部分會更有意義,這可能會導致更穩定的解決方案。但是,don't try to parse HTML with Regex!

+2

表[1]和tr [14]正在使用索引。在另一個wiki頁面上,這不起作用。我認爲最好檢索整個表格並檢查文本'Release Date' –

+0

True!正如我所說的,在這一點上,使用RegEx或迭代表格行可能是有意義的。 – larsbe