首先,我希望我的问题不会打扰你。我真的需要了解我如何才能实现这一目标,但不幸的是,我真的是一个初学者,在编程时我正在爬行。我正努力以最好的方式学习它。我会感谢你给我的任何帮助。
以下是任务:我被命令找到一种方法,使用c#应用程序从网站收集一些数据。这将每天完成,以便更新我们将用于计算某些财务指标的数据。
我知道我的问题可能听起来很模糊,无论如何,甚至告诉我如何更精确地帮助我。我知道我似乎知道绝望,但是把所有人格问题都解决了,我的奖学金取决于它。
提前致谢! (拜托,不要介意英语不好,我是巴西人,我的英语可能不太好。)
答案 0 :(得分:4)
首先,你的英语很好。事实上,除非你另有说法,否则我认为你是母语人士。
您正在寻找的术语是“网站抓取”。观察这个问题:Options for HTML scraping?。第二个答案指向您可以使用的HTML敏捷包库。
现在,这里有两种可能性。首先,您必须解析HTML并从中删除数据。这更加计算密集,取决于页面的布局。如果他们改变网站的外观,可能会破坏刮刀。
第二种可能性是它们提供了一些您可以使用的XML或JSON Web服务。在这种情况下,你不是在刮擦任何东西,而是使用真正的数据源。如果网站的布局发生变化,您就不会破坏。目标网站是否支持这种形式的数据Feed取决于网站。
答案 1 :(得分:1)
如果我理解了您的问题,则会要求您执行一些Web Scraping,其中1)下载网页的内容,并且2)尝试解析来自该内容的数据。
对于步骤#1,您应该考虑在C#中使用WebClient对象从网页下载HTML。您可以为WebClient
对象提供要从中下载内容的网址,并获取包含网址内容(可能是HTML)的String
。
如何进行第2步,取决于网站上的内容。如果您知道HTML中要查找的某些模式,则可以使用各种方法搜索HTML字符串。通过使用Html Agility Pack可以找到解析HTML数据的更通用的解决方案,它可以让您将HTML作为树结构(DOM)处理。
答案 2 :(得分:0)
答案 3 :(得分:0)
好的,这是一个非常简单的应用程序设计,并且存在许多可以重用的代码。由于您是初学者,我将分解您需要做的步骤并推荐方法。
1)您将使用System.Net中的类来提取网页(WebClient是最容易使用的)。如果可以(使用操作系统的预定作业功能)并且只需将页面拉出并放在文件夹中,您就可以让程序的这一部分在计时器上运行。
2)你有第二个工作将分开运行,从该文件夹中提取未读文件,解析它们(最好使用HtmlAgility包库),然后将它们存储在某种索引中({{ 3}}最适合那个)
3)您有一个前端应用程序(Web或桌面),它会查询您正在寻找的信息的索引。