微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我一直在使用这个网站很长一段时间来找到我的问题的答案,但是我无法找到这个答案.

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

我们的网站运行时间很长,所以我们试图添加更多的网站.我想做的一件事是将放入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格式,可能会导致错误.

原文地址:https://www.jb51.cc/csharp/93173.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐