Example #1
0
 void InitializeCraigslistSearcher(SearcherBase searcher)
 {
     searcher.SearcherConfiguration = new SearcherConfiguration
     {
         SearchQueryFormatExpression = "{0}/search/sof?query+={1}",
         SearchResultKeyAttributeName = "data-pid",
         SearchResultsCityGroupRegex = "(?<city>[\\w. ]+)",
         SearchResultSourceUriLinkSelector = ".pl a",
         SearchResultsParentNodeXPathSelector = "//p['data-pid']",
         SearchResultsStateProvinceGroupRegex = "(<?stateprovince>[\\w. ]+)",
         SearchResultTitleLinkSelector = ".pl a"
     };
 }
Example #2
0
 void InitializeCraigslistSearcher(SearcherBase searcher)
 {
     searcher.SearcherConfiguration = new SearcherConfiguration
     {
         SearchQueryFormatExpression          = "{0}/search/sof?query+={1}",
         SearchResultKeyAttributeName         = "data-pid",
         SearchResultsCityGroupRegex          = "(?<city>[\\w. ]+)",
         SearchResultSourceUriLinkSelector    = ".pl a",
         SearchResultsParentNodeXPathSelector = "//p['data-pid']",
         SearchResultsStateProvinceGroupRegex = "(<?stateprovince>[\\w. ]+)",
         SearchResultTitleLinkSelector        = ".pl a"
     };
 }
Example #3
0
        public List<SearchResult> GetSearchResults(string urlFilePath, List<string> searchTerms, Dictionary<string, int> scoredKeywords, SearcherBase searcher)
        {
            var collectorStrategy = new HtmlCollectorStrategyBase();
            var searchResultType = searcher.GetType().ToString();

            using (var ctx = new SearcherEntities())
            {
                collectorStrategy.ExcludeUrls = ctx.SearchResultDatas.Where(x=>x.PostType==searchResultType).Select(x => x.PostUrl).ToList();
            }
            collectorStrategy.ScoredKeywords = scoredKeywords;
            collectorStrategy.SearchBaseUrls = System.IO.File.ReadAllLines(urlFilePath).ToList();
            collectorStrategy.SearchTerms = searchTerms;
            if (searcher.GetType() == typeof (CraigslistSearcher))
                InitializeCraigslistSearcher(searcher);
            collectorStrategy.Searcher = searcher;
            collectorStrategy.CollectSearchQueries();
            collectorStrategy.CollectSearches();
            collectorStrategy.ScoreResults();
            PersistSearchResults(collectorStrategy.SearchResults, searchResultType);
            return collectorStrategy.SearchResults;
        }
Example #4
0
        public List <SearchResult> GetSearchResults(string urlFilePath, List <string> searchTerms, Dictionary <string, int> scoredKeywords, SearcherBase searcher)
        {
            var collectorStrategy = new HtmlCollectorStrategyBase();
            var searchResultType  = searcher.GetType().ToString();

            using (var ctx = new SearcherEntities())
            {
                collectorStrategy.ExcludeUrls = ctx.SearchResultDatas.Where(x => x.PostType == searchResultType).Select(x => x.PostUrl).ToList();
            }
            collectorStrategy.ScoredKeywords = scoredKeywords;
            collectorStrategy.SearchBaseUrls = System.IO.File.ReadAllLines(urlFilePath).ToList();
            collectorStrategy.SearchTerms    = searchTerms;
            if (searcher.GetType() == typeof(CraigslistSearcher))
            {
                InitializeCraigslistSearcher(searcher);
            }
            collectorStrategy.Searcher = searcher;
            collectorStrategy.CollectSearchQueries();
            collectorStrategy.CollectSearches();
            collectorStrategy.ScoreResults();
            PersistSearchResults(collectorStrategy.SearchResults, searchResultType);
            return(collectorStrategy.SearchResults);
        }