/ / pobieranie danych z formularza internetowego ASP.NET - asp.net, screen-scraping, web-crawler

pobieranie danych z ASP.NET webForm - asp.net, screen-scraping, web-crawler

Jestem dość nowy w tworzeniu stron internetowych i nigdy wcześniej nie zeskrobałem ekranu ani nie przeszukiwałem sieci, ale wczoraj mój znajomy zapytał mnie, czy mógłbym pobrać niektóre dane z to strona internetowa, która nie jest moja ani jego, ale danejest publicznie dostępny nawet do pobrania. Problem z danymi polega na tym, że są one dostępne tylko jako jeden plik na jedną datę lub firmę, a nie jako jeden plik dla wielu dat lub firm, co wymaga wielu żmudnego „klikania” kalendarza, więc pomyślał, że tak będzie fajnie, gdybym był w stanie stworzyć aplikację, która mogłaby pobrać wszystkie dane jednym kliknięciem i umieścić je w jednym pliku lub czymś podobnym.

Witryna korzysta z aspx webFrom z __doPostBackaby pobrać dane z różnych dat, nawet linki do pobierania danych w XSL nie są zwykłymi linkami „href =…”, zakładam, że są one odniesieniami do jakiegoś skryptu ASP…

Szczerze mówiąc jedyną rzeczą, jaką próbowałem, było cURL PHPco nie zadziałało, ale odkąd pierwszy raz spróbowałem cURL, nie wiem nawet, czy nie zadziałało, ponieważ nie jest to możliwe z cURL, lub po prostu dlatego, że nie wiem, jak z nim pracować. Jestem dość biegły w PHP i JavaScript, ale nie w ASP, chociaż nie miałbym nic przeciwko nauczeniu się czegoś nowego.

Więc moje pytanie brzmi ... Czy jest w ogóle możliwe pobranie danych z takiej strony internetowej? a jeśli tak, to czy byłbyś tak miły i dał mi kilka wskazówek, jak podejść do tego rodzaju problemu?

strona znowu jest tutaj http://extranet.net4gas.cz/capacity_ee.aspx

Dzięki

(uff, moje pierwsze pytanie… jeśli nie jest zgodne z zasadami, daj mi znać, a następnym razem pójdę lepiej)

Odpowiedzi:

1 dla odpowiedzi № 1

C # ma fajną klasę WebClient do wykonania zadania:

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

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

po umieszczeniu strony html w ciągu znaków używa się wyrażeń regularnych, aby zeskrobać zawartość, której szukasz. oto bardzo podstawowe wyrażenie regularne, które daje wskazówkę:

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

1 dla odpowiedzi nr 2

Marosko, jak powiedziałeś, dane na stronie są jawnedo użytku publicznego, więc na pewno możesz wydobyć z niego dane. Teraz chodzi o zmniejszenie ręcznych dat kliknięć i usuwanie z nich danych. Osobiście nie mam pojęcia, jak będzie działać Curl, ale jestem pewien, że będzie to wymagało dużo kodowania. Raczej sugeruję, aby zautomatyzować cały proces za pomocą jakiegoś narzędzia do automatyzacji, takiego jak aplikacja. Wypróbuj Automation Anywhere, ja kupiłem go kilka miesięcy temu w celu wyodrębnienia danych i działał bardzo dobrze.Jest zautomatyzowany i możesz sprawdzić skrobanie ekranu możliwości, które pokazuje. To moja ulubiona :)

Charles