加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从网页中拉取数据,解析特定的部分并显示它

发布时间:2020-12-15 03:58:05 所属栏目:百科 来源:网络整理
导读:我一直在使用这个网站很长一段时间来找到我的问题的答案,但是我无法找到这个答案. 我正在和一个班上的小组合作.我们要建立一个小型的“游戏交易”网站,允许人们注册,放入他们想要交易的游戏,并接受他人的交易或要求交易. 我们的网站运行时间很长,所以我们试
我一直在使用这个网站很长一段时间来找到我的问题的答案,但是我无法找到这个答案.

我正在和一个班上的小组合作.我们要建立一个小型的“游戏交易”网站,允许人们注册,放入他们想要交易的游戏,并接受他人的交易或要求交易.

我们的网站运行时间很长,所以我们试图添加更多的网站.我想做的一件事是将放入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#(如我的代码所示)粘贴,但请确保转义引号.

您必须确保使用一些错误处理技术,因为如果Web Scrapping更改页面的HTML格式,可能会导致错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读