2017-08-17 29 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