这个小例子使用HtmlAgilityPack,并使用
XPath选择器到达所需的元素。
protected void Page_Load(object sender, EventArgs e){ string url = "http://www.metacritic.com/game/pc/halo-spartan-assault"; var web = new HtmlAgilityPack.HtmlWeb(); Htmldocument doc = web.Load(url); string metascore = doc.documentNode.SelectNodes("//*[@id="main"]/div[3]/div/div[2]/div[1]/div[1]/div/div/div[2]/a/span[1]")[0].InnerText; string userscore = doc.documentNode.SelectNodes("//*[@id="main"]/div[3]/div/div[2]/div[1]/div[2]/div[1]/div/div[2]/a/span[1]")[0].InnerText; string summary = doc.documentNode.SelectNodes("//*[@id="main"]/div[3]/div/div[2]/div[2]/div[1]/ul/li/span[2]/span/span[1]")[0].InnerText;}
获取
XPath给定元素的简单方法是使用网络浏览器(我使用Chrome)开发者工具:
- 打开开发人员工具(
F12
或Ctrl
+Shift
+C
(Windows)或Command
+Shift
+C
适用于Mac)。 - 在页面中选择您想要XPath的元素。
- 右键单击“元素”选项卡中的元素。
- 单击“复制为XPath”。
您可以将其完全粘贴到c#中(如我的代码所示),但是请确保转义引号。
您必须确保使用某些错误处理技术,因为如果Web Scrapping更改页面的HTML格式,则它们可能会导致错误。
编辑
根据@knocte的建议,以下是HTMLAgilityPack的Nuget包的链接:
https://www.nuget.org/packages/HtmlAgilityPack/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)