pobieranie strony i parsowanie treści

0

hej
potrzebuję napisać programik który ściągnie podaną mu stronę internetową i wyciągnie z niej wszystkie linki do innych stron. i jeszcze będzie komunikował jeśli poda się mu błędny adres. czy umiałby mi ktoś w tym pomóc, albo chociaż polecić gdzie o tym szukać?? z góry dzięki:)

0

Odpowiedz na oba pytania brzmi: Tak. Umialby ktos pomoc i polecic gdzie o tym szukac - gdybys tylko napisal z czym masz problem. Jak z napisaniem to potrzebujesz frameworka .net, srodowiska (np. visual, sharpdevelop), nastepnie otworzyc ktorys z nich i pisac, a pozniej skompilowac. To w duzym skrocie wystarczy do napisania :)

0

a więc nie chodzi mi o to w czym pisać i jak pisać (czyli, że przy użyciu klawiatury) :-) bardziej chodzi mi o kod, jakich klas użyć, jak rozpocząć pobieranie i potem w jaki sposób to przeglądać by wyłuskać adresy ;-)
wiem że trzeba wysłać do serwera żądanie o konkretną stronę, on wyśle mi tego html'a wsadzić to w jakiś bufor i parsować w poszukiwaniu czegoś co jest adresem, ale wiem, że można je w różny sposób zapisać i nie wiem na co zwracać uwagę. powiedzmy więc że chodzi mi o to co na czerwono zaznaczyłam [green]

0

No to slowa klucze sa takie:

  • komunikacja z serwerem: przestrzen nazw System.Net, klasy WebClient (latwa i przyjemna) lub HttpRequest, HttpResponse (trudniejsze, ale wiele wiecej mozna zdzialac)
  • parsowanie: klasa Regex, czyli wyrazenia regularne. Ta klasa zalatwisz cale przegladanie strony i wyluskanie linkow.
  • komunikacja w razie bledow - to zalatwisz przechwytujac odpowiednie wyjatki przy wywolaniu metod powyzszych klas.
0

dziękuję:) poszukam i poczytam o tym...

0

dobra, poradziłam sobie ze ściągnięciem html'a ale z wyszukaniem tam lilnków nie umiem:(
znalazłam coś takiego ^https?://([\w-]+\.)+[\w-]+(/[\w-\./?%=]*)?$ że to niby opisuje strukturę adresu, ale to zastosować by wybrać wszystkie pasujące podciągi w tym ściągniętym źródle html??

0

Jak kiedys pisalem cos podobnego to takie wyrazenie mi wyszlo:

(?i)<a[^>]+href\s*=['""]?(?:mailto:)?([^>'""]*)['""]?\s*[^>]*>([^>]*)<\s*/a\s*>
0

dobra, poradziłam sobie ze ściągnięciem html'a ale z wyszukaniem tam lilnków nie umiem:(
znalazłam coś takiego
^https?://([\w-]+.)+[\w-]+(/[\w-./?%=]*)?$
że to niby opisuje strukturę adresu, ale to zastosować by wybrać wszystkie pasujące podciągi w tym ściągniętym źródle html?

Użyj klasy MatchCollection

Poza tym - wydaje mi się, że w Twoim wyrażeniu jest błąd , nie powinno być znaku <font size="4">^</span> na początku ani <font size="4">$</span> na końcu (bo to by szukało tylko linku w pojedynczym wierszu w źródle strony)

0

dzięki Wam, pomogło i póki co nawet działa;)

0

wow... tacy ort! to rodzynki :)

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