2015-08-14 160 views
1

我想创建一个应用程序以保留网页上提供的某些信息的历史记录。从网站存储信息

一个什么样的页面看起来就像一个例子:http://csgolounge.com/match?m=4961

所以我在想什么,就是把浏览器中的表单中,然后导航到一个页面,然后点击一个按钮来保存网页上的信息,在后面的代码中将选择页面,查看源代码或其他内容,并选择适当的数据并存储。

我想获得的数据是: TEAM1, 的Team2, 优胜者和 百分比为每个团队和用于下注的比率。

我只是想知道这是可能的还是有更好的方法呢?我不确定网站是否有API或任何东西。

无需代码,因为我还没有开始,

回答

0

你有没有做过网页抓取过吗?如果不是,那看起来就是你想要做的。 Web Scraping通常属于这个灰色区域,无论它是否合法,但如果您的应用程序用于非商业目的,我认为您应该没有任何问题。

有很多网页抓取API。例如,CSQueryHTMLAgilityPack是.NET着名的网页抓取库。

我推荐使用这些库。这里是你如何使用CSQuery之类的东西。这里是小提琴 - https://dotnetfiddle.net/0ugatU

using System; 
using System.Text.RegularExpressions; 
using CsQuery; 

public static class Scraper 
{ 
    public static string RemoveHTMLTags(string html) 
    { 
     return Regex.Replace(html, "<.*?>", string.Empty); 
    } 

    public static bool FindWinner(string item) 
    { 
     if(item.Contains("(win)")) 
     { 
      return true; 
     } 

     return false; 
    } 
} 

public class Program 
{ 
    public static void Main() 
    { 
     CQ dom = CQ.CreateFromUrl("http://csgolounge.com/match?m=4961"); 
     CQ bold = dom["div > a b"];  
     CQ italic = dom["div > a i"]; 

     string team1 = Scraper.RemoveHTMLTags(bold[0].Render()); 
     string team2 = Scraper.RemoveHTMLTags(bold[1].Render()); 
     string team1Percent = Scraper.RemoveHTMLTags(italic[0].Render()); 
     string team2Percent = Scraper.RemoveHTMLTags(italic[1].Render());   

     if(Scraper.FindWinner(team1)) 
     { 
      Console.WriteLine("-- Winner --"); 
      Console.WriteLine(team1 + " - " + team1Percent); 
      Console.WriteLine("-- Loser --"); 
      Console.WriteLine(team2 + " - " + team2Percent);    
     } 
     else 
     {        
      Console.WriteLine("-- Winner --"); 
      Console.WriteLine(team2 + " - " + team1Percent); 
      Console.WriteLine("-- Loser --"); 
      Console.WriteLine(team1 + " - " + team2Percent); 
     }  
    } 
} 

注:安装CSQuery作为NuGet包

+0

哇,谢谢你的详细解答,当我有机会继续这个工作时,我会测试一下。非常感谢你,如果它正在努力,我会将它标记为答案。此外,我从来没有做过网络刮,所以这将是第一个xD – Cleaven

+0

无后顾之忧。我相信这是你正在努力的方向。这只是关于网络刮板的选项。 CSQuery和Html Agility Pack对于你正在努力完成的任务来说是非常不错的网页抓取工具。尝试摆弄他们两个(甚至其他人),以获得它的感觉,以更好地理解你的偏好。 –

0

Beautiful Soup被刮数据从网页制成。它是用Python编写的,所以学习起来也很容易。

从他们的网站:

美丽的汤提供浏览,搜索和修改分析树几个简单的方法和Python的成语:用于解剖的文档和提取你所需要的工具包。它并不需要太多的代码编写一个应用程序

这里有一个很好的演练例如:http://www.crummy.com/software/BeautifulSoup/bs4/doc/

+0

我忘了提,如果有某种类型的API,这将可能是最好的,最简单的方法获取数据..尤其是如果网站经常改变html/layout .. – wasatchwizard

+0

Thanx的回应,我没有足够的代表upvote你的答案,但它的东西,我会在一周期间,当我得到一些空闲时间,我找到了一个API我看起来没有找到一个网站。 – Cleaven