示例#1
0
 private IEnumerable <TCrawler> ParseNodes(ICrawlerProvider provider)
 {
     foreach (var node in Nodes)
     {
         var obj = ParseModel(node);
         if (obj != null)
         {
             obj.Init(provider);
             yield return(obj);
         }
     }
 }
        internal protected override sealed void Init(ICrawlerProvider provider)
        {
            config(this);
            node = GetNode(provider.GetDocument(Source));
            var list = new Dictionary <string, Func <dynamic> >();

            foreach (var member in members)
            {
                var mm = member;
                var p  = provider;
                var n  = node;
                list.Add(mm.Key, () => {
                    var obj = mm.Value(n);
                    obj.Init(p);
                    return(obj.Value);
                });
            }
            Crawlers = list;
        }
示例#3
0
        internal protected override sealed void Init(ICrawlerProvider provider)
        {
            Nodes = GetNods(provider.GetDocument(Source));//.Take(40);

            Crawlers = ParseNodes(provider);
        }
 internal protected override sealed void Init(ICrawlerProvider provider)
 {
     node  = GetNode(provider.GetDocument(Source));
     value = node == null?default(T):ConvertValue(node);
 }
 private static ICrawlerProvider CreateProvider <TProvider>() where TProvider : ICrawlerProvider, new()
 {
     return(_Provider ?? (_Provider = new TProvider()));
 }
 internal protected virtual void Init(ICrawlerProvider provider)
 {
 }