Gromadzenie danych z wyszukiwarki internetowej.

0

Witam, od jakiegoś czasu korzystam z wyszukiwarki na stronie internetowej która wyświetla mi oferty. Chciałbym napisać algorytm który będzie za mnie częściowo analizował oferty, muszę tylko wszystkie oferty ściągnąć i jakoś przygotować do przetwarzania.

Wyszukiwarka pokazuje zawsze 10 rekordów na stronę a zwykle jest około 1000 stron. To daje 10 000 rekordów.

Najprościej byłoby wygenerować 1000 linków (do każdej strony wyszukiwania) i parsować źródło każdej strony wyszukiwania tak aby wybrać niezbędne dane.
Problem jest taki, że ściągniecie jednej strony metodą :

WebClient client = new WebClient();
string strona = client.DownloadString("http://cos.html");

to około 250 kb co daje 250 mb dla wszystkich rekordów.

Natomiast podczas klikania strzałki "next" w przeglądarce następną stronę ładuje się błyskawicznie, dociągając parę kb.

Czy można jakoś programowo, szybko, bez ściągania masy niepotrzebnych danych ściągnąć źródła tych stron ?

1

DownloadString nie ściąga żadnych dolinkowanych zasobów, same źródło, podobnie jak przeglądarka, która ma je wszystkie w cache.

0

Domyśliłem się ze DownloadString sie tu nie nadaje, szukam mechanizmu który potrafi na stronie wysłać żądanie (kliknąć next) i odebrać nową porcje danych zamiast ładować wszystko od nowa za każdym razem.

1

Dlaczego się nie nadaje? Potrzebna ci tylko oryginalna treść zwracana przez serwer, tj. HTML.
Co to znaczy ładować wszystko od nowa? Wiesz jak działa protokół HTTP? Każde żądanie, kliknięcie w statyczny link to wysłanie nowego żądania i odebrania właśnie całej strony na nowo (prócz zasobów, które mamy zcache'owane).

1 użytkowników online, w tym zalogowanych: 0, gości: 1