我对网络开发还不熟悉,从来没有做任何屏幕抓取或网络抓取,但昨天我的一个朋友问我是否能从this网站获取一些数据,这不是我的,也不是他的,但数据即使是下载也是公开的。 数据的问题是,它只能作为每个日期或公司的一个文件,而不是一个文件用于多个日期或公司,这涉及很多繁琐的“点击”日历,所以他认为如果我可以创建一些应用程序,只需点击一下即可获取所有数据,并将其输出到一个文件或类似文件中。
该网站使用aspx webFrom和__doPostBack来检索不同日期的数据,甚至在XSL中下载数据的链接也不是通常的“href = ...”链接,我认为它们是一些asp脚本的引用...
说实话我唯一尝试的是PHP cURL哪个不起作用,但是因为我第一次尝试cURL,我甚至不知道它是否不起作用,因为cURL是不可能的,或者只是因为我不知道如何使用它。 我只是精通PHP和JavaScript,但不是ASP,但我不介意学习新东西。
所以我的问题是...... 是否可以从这样的网站获取数据?如果是的话,你会非常友好地给我一些关于如何处理这类问题的提示吗?
该网站又来了http://extranet.net4gas.cz/capacity_ee.aspx
由于
(嗯,我的第一个问题..如果不遵守规则,请告诉我,下次我会做得更好)
答案 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功能。它是我最喜欢的:))
查尔斯