захват данных из веб-формы ASP.NET - PullRequest
1 голос
/ 15 февраля 2012

Я довольно новичок в веб-разработке и никогда раньше не делал ни скрепки экрана, ни веб-сканирования, но вчера мой друг спросил меня, смогу ли я получить некоторые данные из этого сайт, который не мой, ни его, но данные общедоступны даже для скачивания.Проблема с данными заключается в том, что они доступны только в виде одного файла для одной даты или компании, а не одного файла для нескольких дат или компаний, что связано с большим количеством утомительных «кликов» по ​​календарю, и поэтому он подумал, что было бы неплохо, если быЯ мог бы создать приложение, которое могло бы захватить все данные одним щелчком мыши и вывести их в один файл или что-то похожее.

Сайт использует aspx webFrom с __doPostBack для получения данных за разные даты,даже ссылки для загрузки данных в XSL не являются обычными ссылками «href =…», они, я полагаю, являются ссылками для некоторого сценария asp… ​​

Если честно, единственное, что я попробовал, это PHP cURLэто не сработало, но так как я попробовал cURL в первый раз, я даже не знаю, не сработало ли это, потому что это невозможно с cURL, или просто потому, что я не знаю, как с ним работать.Я только немного разбираюсь в PHP и JavaScript, но не в ASP, хотя я не возражаю против изучения чего-то нового.

Так что мой вопрос ... Можно ли вообще получить данные с веб-сайта, такого какэтот?и если это так, не могли бы вы дать мне несколько советов о том, как решить эту проблему?

веб-сайт снова находится здесь http://extranet.net4gas.cz/capacity_ee.aspx

Спасибо

(фу, мой первый вопрос ... если он не соответствует правилам, пожалуйста, дайте мне знать, и в следующий раз я поправлюсь)

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Marosko, как вы сказали, данные на сайте открыты для общественности, так что вы наверняка сможете извлечь из них данные.Теперь нужно уменьшить количество нажатий вручную по датам и удалить из них данные.Лично я не имею большого представления о том, как будет работать Curl, но я уверен, что в нем будет много кода.Я бы скорее предложил вам автоматизировать весь процесс, используя какой-то инструмент автоматизации, например, программное приложение.Попробуйте Automation Anywhere, я купил ее несколько месяцев назад для какой-то цели извлечения данных, и она работала очень хорошо.Он автоматизирован, и вы можете проверить возможности очистки экрана , которые он показывает.Это мой любимый :) 1003

Чарльз

1 голос
/ 15 февраля 2012

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);
}
...