WebBrowser i zapis strony lub źródła strony?

0

Witam mam pytanie odnośnie użycia kontrolki WebBrowser w c#. Muszę sczytać dane z ogromnej ilości stron. I chcę zrobić to automatycznie. Jak można zapisać źródło strony, ewentualnie całą stronę?
Dane które są mi potrzebne zawarte są w html wiec wystarczy mi zapisanie źródła strony.
Dzięki za wszelkie wskazówki.

0
WebBrowser.DocumentText;
0

dzięki, o to mi chodziło.

0

jeśli nie musisz podglądać ściąganej strony, a bardzo Ci zależy na szybkości, to można tak:

WebClient client = new WebClient();
client.DownloadString("http://www.strona.pl");

można jeszcze za pomocą HttpWebRequest i HttpWebResponse.

0

Witam
pobieram żródło załadowanej strony z webbrowsera:
WebBrowser.DocumentText;

ale po wklejeniu tego np do notatnika są krzaki zamiast polskich znaków...
Da się to jakoś obejść?

Próbowałem

tekstZeStrony = WebBrowser1.DocumentText;
tekstZeStrony = tekstZeStrony.Replace("ą", "AA");

ale nie widzi w ogóle pl liter.

0

Encoding() + F1

0

Takie odpowiedzi są super, a jeszcze lepsze: Google...
F1 ma na pewno gotowe rozwiązania...

a jakby ktoś szukał to:

StreamReader sr = new StreamReader(webBrowser1.DocumentStream, Encoding.GetEncoding(webBrowser1.Document.Encoding));
string tekstZeStrony = sr.ReadToEnd();

pozdr

0

Witajcie,

Mam podobny problem do tego powyżej. Gdy wprowadzam do przeglądarki dany adres URL to IE zaczyna otwierac dany plik, który jest umieszczony na tej stronie. Chciałbym, aby mój program ściągną ten plik.

Gdy używam funkcji:

WebClient client = new WebClient();
client.DownloadData(adres);

lub
client.DownloadFile(adres, "plik");

To pierwsze w ogóle nie działa, a to drugie ściąga mi tylko źródło.

Serdecznie prosze o pomoc.

</u></i>

0
Tomasz programista C# napisał(a)

Gdy używam funkcji:

WebClient client = new WebClient();
client.DownloadData(adres);

lub
client.DownloadFile(adres, "plik");

To pierwsze w ogóle nie działa, a to drugie ściąga mi tylko źródło.

Metoda:

client.DownloadData(adres);

zwraca tablice Byte'ów, więc trzeba ją sobie "wziąć" i zapisać.
Natomiast:

client.DownloadFile(adres, "plik");

od razu zapisuje do pliku.

Nie rozumiem Twojego problemu. Według Ciebie co mają zwrócić te metody jak nie źródło, czyli kod html strony?

Chyba, że chcesz zrobić program na wzór Teleport Pro (do ściągania stron www, żeby działały offline)
Wtedy musisz ściągnąć CSS, obrazki i inne pliki, ale to już trzeba samemu przeszukać html i powyłapywać inne pliki do ściągnięcia, a na końcu odpowiednio zmodyfikować kod html strony, aby stronka działała offline.
Automatu do tego żadnego nie ma... nie licząc WebBrowsera, który nie zawsze chodzi jakby się tego chciało. ;]

0

myślę, że autorowi chodziło o to, że masz adres typu "http://www.strona.com/program.zip". Kiedyś robiłem coś takiego i używałem DownloadData, potem zapisywałem tablice bajtów do pliku, o dziwo działało (przynajmniej z formatem *.zip, innych nie próbowałem)

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