public class PageParser
{
public List<Websitedata> PageParserMethod()
{
var websitedata = new List<Websitedata>();
HtmlWeb web = new HtmlWeb();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
HtmlDocument doc = web.Load("https://www.sullivanautomotivegroup.net/");
var metaTags = doc.DocumentNode.SelectNodes("//meta");
var foundAppropriateMetaTag = false;
if (metaTags != null)
{
foreach (var tag in metaTags)
{
if (tag.Attributes["name"] != null && tag.Attributes["content"] != null)
{
foundAppropriateMetaTag = true;
var name = tag.Attributes["name"].Value;
var content = tag.Attributes["content"].Value;
//items.Add(new { name, content });
Websitedata info = new Websitedata();
info.name = name;
info.content = content;
websitedata.Add(info);
}
}
}
//var linksOnPage = doc.DocumentNode.Descendants.SelectNodes("//link");
var linksOnPage = from lnks in doc.DocumentNode.Descendants()
where lnks.Name == "a" &&
lnks.Attributes["href"] != null &&
lnks.InnerText.Trim().Length > 0
select new
{
Url = lnks.Attributes["href"].Value,
Text = lnks.InnerText,
};
if (linksOnPage != null)
{
foreach (var tag in linksOnPage)
{
foundAppropriateMetaTag = true;
var rel = tag.Text;
var href = tag.Url;
Websitedata info = new Websitedata();
info.rel = rel;
info.href = href;
websitedata.Add(info);
//items.Add(new { rel, href });
}
}
var scriptGoogleTagManager = doc.DocumentNode.SelectNodes("//script").Where(x => x.InnerHtml.Contains("www.googletagmanager.com"));
if (scriptGoogleTagManager != null)
{
foreach (var tag in scriptGoogleTagManager)
{
{
var abc = tag.InnerText;
//items.Add(new { abc });
Websitedata info = new Websitedata();
info.GoogleTag = abc;
websitedata.Add(info);
}
}
}
var FacebookPixel = doc.DocumentNode.SelectNodes("//script").Where(x => x.InnerHtml.Contains("connect.facebook.net"));
if (FacebookPixel != null)
{
foreach (var tag in FacebookPixel)
{
{
var abc = tag.InnerText;
//items.Add(new { abc });
Websitedata info = new Websitedata();
info.FacebookPixel = abc;
websitedata.Add(info);
}
}
}
var newrelic = doc.DocumentNode.SelectNodes("//script").Where(x => x.InnerHtml.Contains("newrelic"));
if (newrelic != null)
{
foreach (var tag in newrelic)
{
{
var abc = tag.InnerText;
//items.Add(new { abc });
Websitedata info = new Websitedata();
info.NewRelic = abc;
websitedata.Add(info);
}
}
}
var adobelinks = doc.DocumentNode.SelectNodes("//script").Where(x => x.InnerHtml.Contains("adobe"));
if (adobelinks != null)
{
foreach (var tag in adobelinks)
{
{
var abc = tag.InnerText;
//items.Add(new { abc });
Websitedata info = new Websitedata();
info.NewRelic = abc;
websitedata.Add(info);
}
}
}
//www.google-analytics.com
var googleAnalytics = doc.DocumentNode.SelectNodes("//script").Where(x => x.InnerHtml.Contains("www.google-analytics.com/analytics.js"));
if (googleAnalytics != null)
{
foreach (var tag in googleAnalytics)
{
{
foundAppropriateMetaTag = true;
var abc = tag.InnerText;
//items.Add(new { abc });
Websitedata info = new Websitedata();
info.FacebookPixel = abc;
websitedata.Add(info);
}
}
}
return websitedata;
}
}
public class Websitedata
{
public string name { get; set; }
public string content { get; set; }
public string rel { get; set; }
public string href { get; set; }
public string GoogleTag { get; set; }
public string FacebookPixel { get; set; }
public string NewRelic { get; set; }
}
Привет, я использовал пакет гибкости Html для анализа содержимого веб-сайта, но не знаю, как анализировать извлеченное содержимое сценариев и сериализовать его для получения полезной информации. Я хочу сохранить все содержимое, полученное с веб-сайта, для класса. Я застрял в проблеме и не могу найти решение. пожалуйста, помогите мне !!!