IContentSource CrawlObject(IContentSource content)
        {
            var match = Regex.Match(content.ToString(), Pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase);
            if (match == null || match.Groups.Count <= MatchGroup)
                return GetDefault(string.Format("Could not match pattern {0}", Pattern));

            var plainContent = new PlainContent();
            plainContent.ContentList.Add(match.Groups[MatchGroup].Value);
            return plainContent;
        }
        protected IContentSource GetDefault(string errMessage=null)
        {
            if (DefaultValue != null) {
                var content = new PlainContent();
                content.ContentList.Add(DefaultValue);
                return content;
            }

            if (ThrowIfNotFound)
                throw new ArgumentException(errMessage);

            return null;
        }