public override HttpWebResponse GetSearchResultPage(string requestUrl) { int scope = 2; if (ProductText.ToLower().Contains("uddevalla")) { scope = 0; } else { if (ProductText.ToLower().Contains("göteborgs")) { scope = 1; } } var cookie = new Cookie("scope", scope.ToString(CultureInfo.InvariantCulture), "/", "www.uddevallatorget.se"); return(WebRequestHelper.GetResponse(requestUrl, null, new[] { cookie })); }
public ProductInfo[] ExecuteSearchRequest() { var searchWords = new List <string>(); var types = new List <string>(); foreach (var word in ProductText.ToLower().Split(' ')) { if (PropertyTypes.Keys.Contains(word)) { types.Add(PropertyTypes[word]); } else { searchWords.Add(word); } } var subRequests = searchWords.Select(searchWord => new BooliSubRequest(searchWord, Limit, types, false, ProductText)); var results = new List <ProductInfo>(); Parallel.ForEach(subRequests, subRequest => { try { var result = subRequest.ExecuteSearchRequest(); lock (results) { results.AddRange(result); } } catch (Exception) { } }); return(results.Take(Limit).ToArray()); }
protected override IEnumerable <ProductInfo> ProccedResultPage(HtmlDocument htmlDoc) { var productNodes = new List <HtmlNode>(); GetProducts(htmlDoc.DocumentNode, ref productNodes); var result = new List <ProductInfo>(); foreach (var productNode in productNodes) { try { var info = GetProductInfoFromNode(productNode); if (IsStrictResults) { string[] searchWords = FullSerchText.Split(' ').Where(word => word.ToLower() != ProductText.ToLower()).ToArray(); if (info.IsStrict(searchWords)) { result.Add(info); } } result.Add(info); } catch (Exception) { } } return(result); }