c# i pobieranie img na dysk z www

0

Witam,
Mam prośbę. Czy może ktoś mnie nakierować jak napisać program, który pozwoli na zapisanie na dysk wszystkich znajdujących obrazow jakie znajduja sie na podajen stronie www...

Za kazda sugestie dziekuje.

Czekam :)

0

W tym wątku napisałem klasę, która odczyta kod strony: http://4programmers.net/Forum/522018?h=#id522018

Następnie pobrany kod przeszukaj odpowiednim wyrażeniem regularnym. Nie jestem specem w tej dziedzinie, więc ktoś inny niech właściwe napisze, ale powinno to być chyba coś w rodzaju
<img.*href=".*".*>
Ten kod na pewno nie zadziała, ale jest dobrym początkiem do uzyskania ścieżek do plików. Reszta to już tylko otworzyć kilka strumieni i pobrać pliki.

0
(?:<img.+src=")(.*)(?:".*>)
(?:     # nie zwracajac, stworz pierwsza grupe:
<img    #	tag otwierajacy
.+      #	dowolny tekst (w nim inne atrybuty)
src="   #	otwarcie atrybutu: src="
)       #,
(       # zwracajac, stworz druga grupe:
.*      #	adres obrazka, az do zamkniecia atrybutu
"       #	zamkniecie atrybutu
)       #,
(?:     # nie zwracajac, stworz trzecia grupe:
"       #	zamkniecie atrybutu src
.*      #	dowolny tekst do zamkniecia tagu
>       #	zamkniecie tagu
)       #.

Przedstawilem pierwsza i trzecia grupe, gdybys rowniez chcial zwrocic caly tag przed i po sciezce pliku obrazka. Gdy tylko chcesz sciezke, mozesz zostawic grupy jako niezwracane albo w ogole nie grupowac tych wyrazen.

<img.+src="(.*)".*>
0

Trzeba by też przeparsować style CSS (również te dołączane <link ..>).
Są jeszcze obrazki załadowane dynamicznie (JavaScript).
Kompletny sposób to pozwolić silnikowi przeglądarki załadować stronę i skorzystać z drzewka elementów (np. WebBrowser lub kontrolka mozilli).
Parsowanie źródeł znajdzie również obrazki niezaładowane (może to być pożądane przez ciebie lub nie).

0
adf88 napisał(a)

lub kontrolka mozilli

Nie wiem, czy dobrze rozumiem. Czy to znaczy, że istnieje klasa/kontrolka, którą można używać do parsowania kodu html tak, że zajmuje się tym np. firefox, a dopiero przetworzony kod wyświetla .NET?

Jeśli tak, to prosiłbym o informacje o niej, bo do jednego z programów właśnie czegoś takiego mi potrzeba.

0

Dodam, że komponent WebBrowser który jest domyślnie w .NET to po prostu IE.

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