private void ParsingPage(int i) { var currUrl = CreateCurrentUrl(CurrentUrl, i); if (DownloadString.MaxDownload >= 1000) { return; } var s = DownloadString.DownLUserAgent(currUrl); if (string.IsNullOrEmpty(s)) { Log.Logger("Empty string in ParserPage()", currUrl); return; } var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(s); var tens = htmlDoc.DocumentNode.SelectNodes( "//div[contains(@class, 'search-registry-entry-block')]/div[contains(@class, 'row')][1]//a[contains(@href, 'printForm/view')]") ?? new HtmlNodeCollection(null); foreach (var a in tens) { try { ParserLink(a); } catch (Exception e) { Log.Logger(e); } } }
private void RunTenderParsing(ITender t) { try { t.ParsingTender(); } catch (Exception e) { Log.Logger(e); } }
private void CreateListUrls() { for (var i = 1; i <= PageCount; i++) { try { ParsingPage(i); } catch (Exception e) { Log.Logger(e); } } }
private void CreateTenderFromDoc(string url) { var s = DownloadString.DownLUserAgent(url); if (String.IsNullOrEmpty(s)) { Log.Logger("Empty string in CreateTenderFromDoc()", url); return; } s = s.CleanStringXml(); var doc = new XmlDocument(); doc.LoadXml(s); var jsons = JsonConvert.SerializeXmlNode(doc); using var jr = new JsonTextReader(new StringReader(jsons)) { DateParseHandling = DateParseHandling.None }; var json = JToken.ReadFrom(jr); var firstOrDefault = json.Children().OfType <JProperty>().FirstOrDefault(p => p.Name.Contains("fcs")); if (firstOrDefault != null) { var tender = firstOrDefault.Value; var t = new TenderType44(tender, url); RunTenderParsing(t); } else { firstOrDefault = json.Children().OfType <JProperty>().FirstOrDefault(p => p.Name.Contains("epN")); if (firstOrDefault != null) { } else { Log.Logger("Can not to define the tender type", url); } } }