从ASP.NET webForm中获取数据

时间:2012-02-15 18:00:38

标签: asp.net screen-scraping web-crawler

我对网络开发还不熟悉,从来没有做任何屏幕抓取或网络抓取,但昨天我的一个朋友问我是否能从this网站获取一些数据,这不是我的,也不是他的,但数据即使是下载也是公开的。 数据的问题是,它只能作为每个日期或公司的一个文件,而不是一个文件用于多个日期或公司,这涉及很多繁琐的“点击”日历,所以他认为如果我可以创建一些应用程序,只需点击一下即可获取所有数据,并将其输出到一个文件或类似文件中。

该网站使用aspx webFrom和__doPostBack来检索不同日期的数据,甚至在XSL中下载数据的链接也不是通常的“href = ...”链接,我认为它们是一些asp脚本的引用...

说实话我唯一尝试的是PHP cURL哪个不起作用,但是因为我第一次尝试cURL,我甚至不知道它是否不起作用,因为cURL是不可能的,或者只是因为我不知道如何使用它。 我只是精通PHP和JavaScript,但不是ASP,但我不介意学习新东西。

所以我的问题是...... 是否可以从这样的网站获取数据?如果是的话,你会非常友好地给我一些关于如何处理这类问题的提示吗?

该网站又来了http://extranet.net4gas.cz/capacity_ee.aspx

由于

(嗯,我的第一个问题..如果不遵守规则,请告诉我,下次我会做得更好)

2 个答案:

答案 0 :(得分:1)

C#有一个很好的WebClient类来完成这项工作:

// Create web client.
WebClient client = new WebClient();

// Download string.
string value = client.DownloadString("http://www.microsoft.com/");

一旦你在一个字符串中有了页面html,你就可以使用正则表达式来抓取你正在寻找的内容。 这是一个非常基本的正则表达式来提示:

Regex regex = new Regex(@"\d+");
Match match = regex.Match("hello here 10 values");
if (match.Success)
{
    Console.WriteLine(match.Value);
}

答案 1 :(得分:1)

Marosko,正如您所说,网站上的数据是公开的,所以您肯定可以从中获取数据。现在,它是减少手动点击日期和从中抓取数据。我个人对Curl的工作原理并不太了解,但我相信它会涉及很多编码。我宁愿建议您使用一些自动化工具(如软件应用程序)自动化整个过程。尝试Automation Anywhere,我几个月前买了它用于一些数据提取目的,它运行得很好。它是自动执行的,您可以查看它显示的screen scraping功能。它是我最喜欢的:))

查尔斯