/// <summary> /// 创建 HtmlParserResult 对象 /// </summary> /// <param name="parser">得到此解析结果的解析器</param> /// <param name="domProvider">HTML DOM 提供程序</param> /// <param name="provider">解析器提供程序</param> /// <param name="virtualPath">文档的虚拟路径</param> public HtmlParserResult( IHtmlParser parser, IHtmlDomProvider domProvider, IHtmlParserProvider provider, string virtualPath ) { Parser = parser; DomProvider = domProvider; Provider = provider; VirtualPath = virtualPath; }
public NflPlayerService(IHtmlParserProvider htmlParserProvider, IEspnHtmlTrimService espnHtmlTrimService, IUrlConfigurationProvider urlConfigurationProvider) { _cache = new Dictionary <int, string>(); _htmlParserProvider = htmlParserProvider; _espnHtmlTrimService = espnHtmlTrimService; _urlConfigurationProvider = urlConfigurationProvider; }
/// <summary> /// 创建 HtmlParserResult 对象 /// </summary> /// <param name="parser">得到此解析结果的解析器</param> /// <param name="domProvider">HTML DOM 提供程序</param> /// <param name="provider">解析器提供程序</param> /// <param name="virtualPath">文档的虚拟路径</param> public HtmlParserResult(IHtmlParser parser, IHtmlDomProvider domProvider, IHtmlParserProvider provider, string virtualPath) { Parser = parser; DomProvider = domProvider; Provider = provider; VirtualPath = virtualPath; }
public LotService( IUnitOfWork unitOfWork, IHtmlParserProvider htmlParserProvider, ILotModelFactory lotModelFactory, IFilterModelFactory filterModelFactory) : base(unitOfWork) { this.htmlParserProvider = htmlParserProvider ?? throw new ArgumentNullException(nameof(htmlParserProvider));; this.lotModelFactory = lotModelFactory ?? throw new ArgumentNullException(nameof(lotModelFactory));; this.filterModelFactory = filterModelFactory ?? throw new ArgumentNullException(nameof(filterModelFactory));; }
public DefaultWebServices(IHtmlParserProvider htmlParserProvider, IWebClientProvider webClientProvider, IPageDownloader pageDownloader) { Guard.VerifyObjectNotNull(htmlParserProvider, nameof(htmlParserProvider)); Guard.VerifyObjectNotNull(webClientProvider, nameof(webClientProvider)); Guard.VerifyObjectNotNull(pageDownloader, nameof(pageDownloader)); _htmlParserProvider = htmlParserProvider; _webClientProvider = webClientProvider; _pageDownloader = pageDownloader; _cachedUrls = new Dictionary <string, CacheableUrlResponse>(); }
public void SetUp() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultImageScrapingService(_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMovesScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMovesScraper }); var attributeScrapers = new List <IAttributeScraper> { new AirSpeedScraper(_attributeScrapingServices), new AirDodgeScraper(_attributeScrapingServices) }; _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); _characterDataScraper = new DefaultCharacterDataScraper(_characterDataScrapingServices); }
public async Task Should_GetPlayerNameForId_ForStandardInput() { //arrange int playerId = 55555; string url = "http://www.espn.com/nfl/player/_/id/55555"; string xPath = "//head/title"; IHtmlParserProvider htmlParserProvider = A.Fake <IHtmlParserProvider>(); A.CallTo(() => htmlParserProvider.getInnerTextForFirstXPathMatch(url, xPath)).Returns("Emmanuel Sanders Stats, News, Bio | ESPN"); IEspnHtmlTrimService espnHtmlTrimService = A.Fake <IEspnHtmlTrimService>(); A.CallTo(() => espnHtmlTrimService.TrimNameFromTitleTag("Emmanuel Sanders Stats, News, Bio | ESPN")).Returns("Emmanuel Sanders"); IUrlConfigurationProvider urlConfigurationProvider = A.Fake <IUrlConfigurationProvider>(); A.CallTo(() => urlConfigurationProvider.GetNflPlayerEndpoint(playerId)).Returns(url); NflPlayerService nflPlayerService = new NflPlayerService(htmlParserProvider, espnHtmlTrimService, urlConfigurationProvider); //act string playerName = await nflPlayerService.GetPlayerNameForId(55555); //assert playerName.Should().BeEquivalentTo("Emmanuel Sanders"); }
public DefaultCharacterDataScraper MakeCharacterDataScraper() { var instanceIdGenerator = new InstanceIdGenerator(); _htmlParserProvider = new DefaultHtmlParserProvider(); _movementProvider = new DefaultMovementProvider(instanceIdGenerator); _moveProvider = new DefaultMoveProvider(instanceIdGenerator); _pageDownloader = new DefaultPageDownloader(); _webClientProvider = new DefaultWebClientProvider(); _attributeProvider = new DefaultAttributeProvider(instanceIdGenerator); _imageScrapingProvider = new DefaultImageScrapingProvider(); _imageScrapingService = new DefaultColorScrapingService(_characterCss); //_imageScrapingProvider); _uniqueDataProvider = new DefaultUniqueDataProvider(instanceIdGenerator); _webServices = new DefaultWebServices(_htmlParserProvider, _webClientProvider, _pageDownloader); _attributeScrapingServices = new DefaultAttributeScrapingServices(_attributeProvider, _webServices); _moveScrapingServices = new DefaultMoveScrapingServices(_moveProvider, _webServices); _movementScrapingServices = new DefaultMovementScrapingServices(_movementProvider, _webServices); _uniqueDataScrapingServices = new DefaultUniqueDataScrapingServices(_uniqueDataProvider, _webServices); _groundMoveScraper = new GroundMoveScraper(_moveScrapingServices); _aerialMoveScraper = new AerialMoveScraper(_moveScrapingServices); _specialMoveScraper = new SpecialMoveScraper(_moveScrapingServices); _throwMoveScraper = new ThrowMoveScraper(_moveScrapingServices); _characterMoveScraper = new DefaultCharacterMoveScraper(new List <IMoveScraper> { _groundMoveScraper, _aerialMoveScraper, _specialMoveScraper, _throwMoveScraper }); var attributeScrapers = AttributeScrapers.AllWithScrapingServices(_attributeScrapingServices, _urlUnderTest); _movementScraper = new DefaultMovementScraper(_movementScrapingServices); _characterDataScrapingServices = new DefaultCharacterDataScrapingServices(_imageScrapingService, _movementScraper, attributeScrapers, _characterMoveScraper, _uniqueDataScrapingServices, _webServices, instanceIdGenerator); return(new DefaultCharacterDataScraper(_characterDataScrapingServices)); }