private static List <string> AdWordsText(SharpQuery sq) { var directText1 = sq.Find("#tads h3 a") .Select(x => RepaceHref(x.OuterHtml)); var directText2 = sq.Find("#tads span.ac").Select(x => x.InnerHtml); var directText3 = sq.Find("#tads cite").Select(x => x.InnerHtml); var adWords = directText1.Zip(directText2.Zip(directText3, (x, y) => x + "<br/>" + y), (x, y) => x + "<br/>" + y) .ToList(); return(adWords); }
private static List <string> DirectText(SharpQuery sq) { var directText1 = sq.Find("div.b-spec-adv a.b-serp-item__title-link") .Select(x => x.OuterHtml); var directText2 = sq.Find("div.b-spec-adv div.b-serp-item__text") .Select(x => x.InnerHtml); var directText3 = GetSites(sq); var directText = directText1.Zip(directText2.Zip(directText3, (x, y) => x + "<br/>" + y), (x, y) => x + "<br/>" + y) .ToList(); return(directText); }
private static void ImageFix() { var tests = new SpecialistTestDataContext().Tests.ToList(); foreach (var test in tests) { var query = new SharpQuery("<div>" + test.Description + "</div>"); var imgs = query.Find("img"); if (imgs.Length == 0) { continue; } var scr = imgs.Attr("src"); var url = scr; if (!url.Contains("http")) { url = "http://test.specialist.ru" + url; } var ext = Path.GetExtension(scr); var image = GetImage(url); if (image != null) { image.Save(test.Id + ext); } } }
public void Should_use_sharpquery_find_when_indexer_invoked() { var query = new SharpQuery(@"<html><head></head><body><div id='testId' class='myClass'>Test</div></body></html>"); var queryResult = query.Find("#testId").FirstOrDefault(); QueryWrapper wrapper = query; var result = (HtmlNode)wrapper["#testId"].FirstOrDefault(); Assert.NotNull(result); Assert.Same(queryResult, result); }
public void HudIsReturned() { var browser = new Browser(new TestBootstrapper()); var response = browser.Get("/_cassette", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var title = query.Find("head title").First(); Assert.That(title, Is.Not.Null); }
public void HudIsReturned() { var browser = new Browser(new NonOptimizingBootstrapper()); var response = browser.Get("/_cassette", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var title = query.Find("head title").First(); Assert.That(title, Is.Not.Null); }
public void JsFileIsReturned() { var browser = new Browser(new NonOptimizingBootstrapper()); var response = browser.Get("/RazorHome", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var url = query.Find("body script[src^='/_cassette/asset/Scripts/lib/underscore.js?']").Attr("src"); response = browser.Get(url, with => with.HttpRequest()); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Console.Write(response.Body.AsString()); }
public void SassFileIsReturned() { var browser = new Browser(new NonOptimizingBootstrapper()); var response = browser.Get("/RazorHome", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var url = query.Find("head link[href^='/_cassette/asset/Styles/Main.sass?']").Attr("href"); response = browser.Get(url, with => with.HttpRequest()); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Console.Write(response.Body.AsString()); }
public void CoffeeFileIsReturned() { var browser = new Browser(new NonOptimizingBootstrapper()); var response = browser.Get("/RazorHome", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var url = query.Find("body script[src^='/_cassette/asset/Scripts/app/layout.coffee?']").Attr("src"); response = browser.Get(url, with => with.HttpRequest()); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Console.Write(response.Body.AsString()); }
public void BundleIsReturned(string location, string element, string attribute, string urlFragmet) { var browser = new Browser(new OptimizingBootstrapper()); var response = browser.Get("/RazorHome", with => with.HttpRequest()); Console.Write(response.Body.AsString()); var query = new SharpQuery(response.Body.AsString()); var url = query.Find(string.Format("{0} {1}[{2}^='{3}']", location, element, attribute, urlFragmet)).Attr(attribute); response = browser.Get(url, with => with.HttpRequest()); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Console.Write(response.Body.AsString()); }
public static SeCompetitor GetYandexCompetitors(int phraseId) { var phrase = Phrases.YandexCompetitors[phraseId]; var yandexPage = GetHtml(yandex.FormatWith(phrase)).Remove(anonym); var sq = new SharpQuery(yandexPage); var directText = DirectText(sq); var onSearchText = sq.Find("div.b-body-items a.b-serp-item__title-link") .Select(x => x.OuterHtml).ToList(); var googlePage = GetHtml(google.FormatWith(phrase)); sq = new SharpQuery(googlePage); var adWords = AdWordsText(sq); var googleSearch = sq.Find("h3.r a.l") .Select(x => x.OuterHtml).ToList(); return(new SeCompetitor(DateTime.Today, phraseId, directText, onSearchText, adWords, googleSearch )); }
private static List <string> GetSites(SharpQuery sq) { return(sq.Find("div.b-spec-adv div.b-serp-url span.b-serp-url__item").Select(x => x.InnerText) .Where(x => !x.Contains("Адрес") && !x.Contains("Москва")).ToList()); }
private string GetSourceAlias(string pageContent) { var sq = new SharpQuery(pageContent); var xe = sq.Find("input#sourceAlias-login"); return xe.FirstOrDefault().Attributes["value"].InnerText; }
private string GetCSRFToken(string pageContent) { var sq = new SharpQuery(pageContent); var xe = sq.Find("input#csrfToken-login"); return xe.FirstOrDefault().Attributes["value"].InnerText; }