public static TagH1 onmouseout(this TagH1 tag, string value) { tag.OnMouseOut = value; return(tag); }
public static TagH1 onmouseup(this TagH1 tag, string value) { tag.OnMouseUp = value; return(tag); }
public static TagH1 onmousemove(this TagH1 tag, string value) { tag.OnMouseMove = value; return(tag); }
public static TagH1 ondblclick(this TagH1 tag, string value) { tag.OnDblClick = value; return(tag); }
public static TagH1 onmousedown(this TagH1 tag, string value) { tag.OnMouseDown = value; return(tag); }
public static TagH1 xmllang(this TagH1 tag, string value) { tag.XmlLang = value; return(tag); }
public static TagH1 dir(this TagH1 tag, Dir value) { tag.Dir = value; return(tag); }
public static TagH1 title(this TagH1 tag, string value) { tag.Title = value; return(tag); }
public static TagH1 lang(this TagH1 tag, LangCode value) { tag.Lang = value; return(tag); }
public static TagH1 @class(this TagH1 tag, string value) { tag.Class = value; return(tag); }
public static TagH1 style(this TagH1 tag, string value) { tag.Style = value; return(tag); }
public static TagH1 id(this TagH1 tag, string value) { tag.Id = value; return(tag); }
public static TagH1 onkeyup(this TagH1 tag, string value) { tag.OnKeyUp = value; return(tag); }
public static TagH1 onkeydown(this TagH1 tag, string value) { tag.OnKeyDown = value; return(tag); }
public static TagH1 onkeypress(this TagH1 tag, string value) { tag.OnKeyPress = value; return(tag); }
public string WebChecker(string url) { string http = "http://"; string https = "https://"; string lblResult = String.Empty; string lblStatusDescription = String.Empty; string lblCause = String.Empty; string innerTextOfTitle = String.Empty; string contentOfTagMeta = String.Empty; string tagA = String.Empty; string tagImg = String.Empty; string innerTextOfH1 = String.Empty; string all = String.Empty; DateTime date = DateTime.Now; Urls urllink = new Urls(); List <TagA> tagAList = new List <TagA>(); List <TagImg> tagImgList = new List <TagImg>(); List <TagH1> tagH1List = new List <TagH1>(); try { //------проверяем есть ли ссылка------------- if (string.IsNullOrEmpty(url)) { MessageBox.Show(@"Вы не вввели ссылку !"); return(null); } //---делаем проверку на наличие протокола "http://" в ссылке запроса if (!(url.StartsWith(http) || url.StartsWith(https))) { url = url.Insert(0, http); } //------------------------------------------------------------------ // Создаём объект запроса HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // Получаем ответ с сервера, если запрашиваемый URL не действителен, // переходим к блоку catch, иначе идем дальше. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (request.HaveResponse) { lblResult = (response.StatusCode == HttpStatusCode.OK) ? "Сайт доступен" : "Сайт не доступен"; lblStatusDescription = response.StatusDescription; lblCause = ((int)response.StatusCode).ToString(); string respStream = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")).ReadToEnd(); HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.LoadHtml(respStream); //------ получаем значение тэга Title ------------- var nodeTitle = htmlDoc.DocumentNode.SelectNodes("//title"); if (nodeTitle != null) { innerTextOfTitle = nodeTitle["title"].InnerText; } //-------------------------------------------------- //------ получаем значение атрибута content тэга meta у которого //------ значение атрибута name является description var nodeMeta = htmlDoc.DocumentNode.SelectNodes("//meta"); if (nodeMeta != null) { foreach (var tag in nodeMeta) { if (tag.Attributes["name"] != null && tag.Attributes["name"].Value == "description") { contentOfTagMeta = tag.Attributes["content"].Value; } } } //--------------------------------------------------------------- //------ получаем значение атрибута href у тэга A ------------- var nodesA = htmlDoc.DocumentNode.SelectNodes("//a"); if (nodesA != null) { foreach (var tag in nodesA) { if (tag.Attributes["href"] != null) { var link = tag.Attributes["href"].Value; tagA += link + "\n"; TagA insTagA = new TagA { UrlId = urllink.Id, Href = link }; tagAList.Add(insTagA); } } } //-------------------------------------------------------------- //------ получаем значение атрибута src у тэга img ------------- var nodesImg = htmlDoc.DocumentNode.SelectNodes("//img"); if (nodesImg != null) { foreach (var tag in nodesImg) { if (tag.Attributes["src"] != null) { var src = tag.Attributes["src"].Value; tagImg += src + "\n"; TagImg tagImgIns = new TagImg { UrlId = urllink.Id, Src = src }; tagImgList.Add(tagImgIns); } } } //--------------------------------------------------------------- //------ получаем значение атрибута src у тэга img ------------- var nodesH1 = htmlDoc.DocumentNode.SelectNodes("//h1"); if (nodesH1 != null) { foreach (var tag in nodesH1) { innerTextOfH1 += tag.InnerText + "\n"; int index = nodesH1[tag]; TagH1 tagH1Ins = new TagH1 { UrlId = urllink.Id, H1Text = tag.InnerText }; tagH1List.Add(tagH1Ins); } } //--------------------------------------------------------------- StringBuilder newContent = new StringBuilder(); newContent.AppendLine("URL: " + url + "\nДата проверки: " + date + "\nСтатус: " + lblResult + "\nОписание статуса: " + lblStatusDescription + "\nКод статуса: " + lblCause + "\nTitle: " + innerTextOfTitle + "\nContent: " + contentOfTagMeta + "\n" + "\nТэги A: \n" + tagA + "\n" + "\nТэги Img: \n" + tagImg + "\nТэги H1: \n" + innerTextOfH1 + "\n"); all = newContent.ToString(); urllink.Url = url; urllink.Title = innerTextOfTitle; urllink.MetaContent = contentOfTagMeta; urllink.Status = lblResult; urllink.StatusDescription = lblStatusDescription; urllink.StatusCode = lblCause; urllink.DateOfParsing = date; using (var db = new ParsingResultsEntities()) { db.Urls.Add(urllink); db.TagH1.AddRange(tagH1List); db.TagA.AddRange(tagAList); db.TagImg.AddRange(tagImgList); db.SaveChanges(); } } response.Close(); request.Abort(); return(all); //возвращаем полученные данные в интерфейс приложения } catch (WebException ex) { lblResult = @"Сайт не доступен"; lblStatusDescription = ex.Message; //---делаем проверку является ли код ошибки HttpStatusCode или WebExceptionStatus if (((HttpWebResponse)ex.Response) != null) { lblCause = ((int)(((HttpWebResponse)ex.Response).StatusCode)).ToString(); } else { lblCause = ((int)(ex.Status)).ToString(); } //------------------------------------------------------------------------------- StringBuilder newContent = new StringBuilder(); newContent.AppendLine("URL: " + url + "\nДата проверки: " + date + "\nСтатус: " + lblResult + "\nОписание статуса: " + lblStatusDescription + "\nКод статуса: " + lblCause + "\n"); all = newContent.ToString(); using (var db = new ParsingResultsEntities()) { db.Urls.Add(urllink); db.SaveChanges(); } return(all); } }