我一直在使用这个网站很长一段时间来找到我的问题的答案,但是我无法找到这个答案.
@H_403_15@解决方法
我正在和一个班上的小组合作.我们要建立一个小型的“游戏交易”网站,允许人们注册,放入他们想要交易的游戏,并接受他人的交易或要求交易.
我们的网站运行时间很长,所以我们试图添加更多的网站.我想做的一件事是将放入Metacritic的游戏链接起来.
这是我需要做的.我需要(在visual studio 2012中使用asp和c#)在Metacritic上获取正确的游戏页面,拉取其数据,解析特定部分,然后在我们的页面上显示数据.
基本上当您选择要交易的游戏时,我们希望一个小div可以显示游戏的信息和评级.我想要这样做,以了解更多,并从这个项目中得到一些东西,我没有必要开始.
我想知道有没有人能告诉我从哪里开始.我不知道如何从页面中提取数据.我仍然试图找出是否需要尝试写一些东西来自动搜索游戏的标题,找到这个页面,或者我可以找到一些方法直接进入游戏的页面.一旦我收到了数据,我就不知道如何提取我需要的具体信息.
其中一个不容易的事情是,我正在学习c和c#和asp,所以我不断得到我的电汇.如果有人能指出我正确的方向,这将是一个很大的帮助.谢谢
这个小例子使用
HtmlAgilityPack,并使用XPath选择器来获取所需的元素.
protected void Page_Load(object sender,EventArgs e) { string Url = "http://www.Metacritic.com/game/pc/halo-spartan-assault"; HtmlWeb web = new 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; }
通过使用您的网络浏览器(我使用Chrome)开发人员工具,获取给定元素XPath的简单方法是:
>打开开发工具(Windows上的F12或Ctrl Shift C或Mac的Command Shift C).
>选择您希望XPath的页面中的元素.
>右键单击“元素”选项卡中的元素.
>点击“复制为XPath”.
您可以将其完全按照c#(如我的代码所示)粘贴,但请确保转义引号.