Example #1
0
        private void RunLoadQuery(LoadQuery lq)
        {
            Option <TermError> te = lq.Check();

            if (te.HasValue())
            {
                throw new ScrapeQLRunnerException(te.Value().ErrorMessage);
            }
            else
            {
                try
                {
                    var x = from StringLiteralToken source in lq.From
                            from IdentifierToken ident in lq.As
                            select Tuple.Create(source, ident);

                    var web = new HtmlWeb();
                    foreach (Tuple <StringLiteralToken, IdentifierToken> pair in x)
                    {
                        var uri = new Uri(pair.Item1.Value.AsString());
                        var doc = web.Load(uri.AbsoluteUri);
                        Scope[pair.Item2.Value.AsString()] = doc.DocumentNode;
                    }
                }
                catch (Exception e)
                {
                    throw new ScrapeQLRunnerException("Error while running Load Query", e);
                }
            }
        }