Načítanie HTML stránky v C#
public bool GetPage(String url)
{
page = string.Empty;
try
{
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream());
page = sr.ReadToEnd();
sr.Close();
myResponse.Close();
sB = new StringBuilder(page);
return true;
}
catch (Exception e)
{
this.error = e.Message;
return false;
}
}
Načítanie HTML stránky, ak stránka požaduje meno a heslo v C#
public bool GetPage(String url)
{
page = string.Empty;
try
{
WebRequest request = WebRequest.Create(url);
request.PreAuthenticate = true;
NetworkCredential networkCredential = new NetworkCredential("Name", "password");
request.Credentials = networkCredential;
HttpWebRequest myRequest = (HttpWebResponse)request.GetResponse();
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream());
page = sr.ReadToEnd();
sr.Close();
myResponse.Close();
sB = new StringBuilder(page);
return true;
}
catch (Exception e)
{
this.error = e.Message;
return false;
}
}
A teraz konečne prejdeme k spomínanému parsovaniu HTML stránky. Na začiatok si vytvoríme veľmi jednoduchú stránku na ktorej si to ukážeme.
HTML
<html> <head> <title>www.projectik.eu</title> </head> <body> Nejaky text<br> Rok vyroby : <b>1999</b><br> Autor : <b>slonik</b><br> </body> </html>
Z danej stránky chceme vybrať: Title,Rok výroby a Autora.
Spravíme si metódu, ktorej vstupným parametrom bude načítaná stránka.
Kód v C#
private void parser(StringBuilder sB)
{
try
{
string pat;
string title, rokVyroby, autor;
Regex reg;
Match match;
//Title
pat = @"<title>(.*?)</title>";
reg = new Regex(pat, RegexOptions.Singleline);
match = reg.Match(sB.ToString());
title = match.Groups[1].Value;
//Rok vyroby
pat = @"Rok vyroby : <b>(.*?)</b>";
reg = new Regex(pat, RegexOptions.Singleline);
match = reg.Match(sB.ToString());
rokVyroby = match.Groups[1].Value;
//Autor
pat = @"Autor : <b>(.*?)</b>";
reg = new Regex(pat, RegexOptions.Singleline);
match = reg.Match(sB.ToString());
autor = match.Groups[1].Value;
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}







