Diskuze: c# - stiahnutie web stránky a jej prepis do subru.txt

C# .NET .NET (C# a Visual Basic) c# - stiahnutie web stránky a jej prepis do subru.txt American English version English version

Avatar
Libor Šimo (libcosenior):

Ide o to, že každá web stránka sa dá zobraziť (View Source) a jej obsah sa dá skopírovať do txt súboru.
Potreboval by som to urobiť programovo, ale zatiaľ som sa s tým pri mojom štúdiu nestretol.
Mohol by ma niekto nasmerovať, prosím?

Editováno 20.6.2013 8:42
Odpovědět 20.6.2013 8:41
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Paradise
Redaktor
Avatar
Paradise:

Mělo by to jít pomocí WebClient a download string a zadat tomu jen odkaz na stránku. Pak si to jen uložíš do txt.

 
Nahoru Odpovědět 20.6.2013 8:56
Avatar
Libor Šimo (libcosenior):

Díky, vyskúšam.

Nahoru Odpovědět 20.6.2013 9:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kit:

Zajímavější bývá, když to do toho souboru txt ukládat nebudeš, ale rovnou si z těch stažených dat vyparsuješ jen ta data, která skutečně potřebuješ.

Nahoru Odpovědět 20.6.2013 9:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
ghol3
Člen
Avatar
ghol3:

jj tak mu tu muzes poradit knihovnu co to parsuje za tebe nebo mu sem muzes vypisovat regexy, treba celkem pekna knihovna na parsovani je http://htmlagilitypack.codeplex.com/ ktera ti vyparsuje i atribbuty tagu, ale musis se s tim naucit ja daval spis prednost regexu...

 
Nahoru Odpovědět 20.6.2013 9:28
Avatar
Kit
Redaktor
Avatar
Odpovídá na ghol3
Kit:

C# neznám, nebudu mu radit konkrétní knihovnu. V seriálu o C# však jsou příklady na parsování. Regexy jsem na to kdysi používal, ale SAX či DOM jsou mnohem výhodnější.

Nahoru Odpovědět 20.6.2013 9:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Libor Šimo (libcosenior):

DOM vyzerá veľmi dobre na to čo by som potreboval, ale citujem: "DOM (Document Object Model) je objektové API pro práci s XML soubory.", teda nie na HTML súbory, aj keď su s XML podobné. Nie je ani zložité previeť HTML do XML, ale už to nie je celkom ono a pri testovaní mi to nefungovalo, pretože v HTML sú nielen párové tagy. Možno som ale niečo robil špatne.
Keď som hľadal na webe DOM a HTML, odkázalo ma to na knižnicu, na ktorú tu poukázal ghol3. Až s jej pomocou (musel som ju pridať k projektu) sa dalo pracovať s HTML formátom.
Alebo to ide predsa len aj s HTML prevedeným do XML a potom s použitím DOM?
Aké máte skúsenosti?

Nahoru Odpovědět 21.6.2013 8:07
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kit:

DOM běžně používám i na zpracování HTML, jen se mu musí při parsování říct, že je to HTML.

Pro C# mi Google našel odkaz, kde je popsáno víc možností:
http://stackoverflow.com/…se-html-in-c

Také můžeš použít SAX, tomu je to jedno.

Editováno 21.6.2013 9:08
Nahoru Odpovědět 21.6.2013 9:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kit:

Teď koukám na definici
"DOM je objektové API pro práci s XML soubory."
a moc se mi nelíbí. DOM už neberu jen jako API, ale spíš jako derivační strom, se kterým se skvěle pracuje. XML se tak dostává do role pouhého serializačního formátu určeného pro výměnu dat mezi počítačem a člověkem nebo mezi počítači.

Nahoru Odpovědět 21.6.2013 9:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Libor Šimo (libcosenior):

Citujem:
"DOM běžně používám i na zpracování HTML, jen se mu musí při parsování říct, že je to HTML."
Môžes sem pastnúť nejaký jednoduchý príklad ako to robíš?

Nahoru Odpovědět 21.6.2013 10:06
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Kit
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Kit:

V PHP se to dělá takto:

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");

nebo

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");

Také si můžeš zkusit

<?php
$doc = new DOMDocument();
@$doc->loadHTMLFile("http://www.devbook.cz");
echo $doc->saveHTML();
Nahoru Odpovědět 21.6.2013 10:23
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Libor Šimo (libcosenior):

Díky, po práci to doma vyskúšam.

Nahoru Odpovědět 21.6.2013 10:29
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.