2014-12-03 60 views
0

我想使用HtmlAgilityPack从GSMArena.com上刮取内容,具体来说,我想刮掉手机的技术规格。C#HtmlAgilityPack - Scraping

期望的结果:

http://www.gsmarena.com/nokia_lumia_520-5322.php 我想刮的重量,尺寸等

问题: 节点路径将几乎所有车型之间的不同。

我的问题:

我怎么会凑通过搜索?例如,如果我想刮掉产品重量,是否有办法告诉HTMLAgilityPack搜索标签,然后转到跟随它的TD,然后刮掉该TD的内部文本?

回答

2

XPath是你的朋友。 Learn it here.(在链接腐烂,只是谷歌的XPath 1.0教程的情况下)

对于文件:

string weight= doc.DocumentNode.SelectSingleNode(@"//td[a[contains(text(),'Weight')]]/following-sibling::td").InnerText; 

会得到你的重量。

XPath解释:对于所有节点(//),选择包含“a”元素的“td”元素,其中包含文本“Weight”,然后选择以下“td”节点。