Example #1
0
        public async Task Test()
        {
            var settings = new ListPageSettings
            {
                Url = "https://www.fppadel.pt/jogadores-e-praticantes",
                ListItemsSelector = "div#texto > div.tblCell",
                ItemProperties    = new List <PropertySettings>
                {
                    new PropertySettings
                    {
                        Name     = "Image",
                        Selector = "span:nth-child(1) > span"
                    },
                    new PropertySettings
                    {
                        Name     = "Number",
                        Selector = "span:nth-child(2)"
                    },
                    new PropertySettings
                    {
                        Name     = "Name",
                        Selector = "span:nth-child(3)"
                    },
                    new PropertySettings
                    {
                        Name     = "Gender",
                        Selector = "span:nth-child(4)"
                    },
                    new PropertySettings
                    {
                        Name     = "Club",
                        Selector = "span:nth-child(5)"
                    },
                    new PropertySettings
                    {
                        Name     = "ValidLicenseYear",
                        Selector = "span:nth-child(6)"
                    }
                }
            };
            var scraper = new ListPageScraper(
                settings,
                this._loggerMock.Object);

            scraper.PropertyScraped += (sender, e) =>
            {
            };
            scraper.ListPageScraped += (sender, e) =>
            {
            };

            await scraper.Scrape();
        }
Example #2
0
        public async Task ListPageScraper_ShouldBeOk()
        {
            //Arrange
            var listPageSettings = this.GetListPageSettings();
            var scraper          = new ListPageScraper(
                listPageSettings,
                this._loggerMock.Object);

            scraper.BeforeDocumentOpen += (sender, e) =>
            {
                sender.Should().NotBeNull();
                e.BrowsingContext.Should().NotBeNull();
                e.Url.Should().NotBeNullOrEmpty();
            };
            scraper.AfterDocumentOpen += (sender, e) =>
            {
                sender.Should().NotBeNull();
                e.Document.Should().NotBeNull();
            };
            scraper.PropertyScraped += (sender, e) =>
            {
                sender.Should().NotBeNull();
                AssertProperty(e.ScrapedProperty, e.Settings);
            };
            scraper.ListPageScraped += (sender, e) =>
            {
                sender.Should().NotBeNull();
                e.Settings.Should().Be(listPageSettings);
                e.Url.Should().NotBeNullOrEmpty();
                AssertListProperties(e.ListProperties, e.Settings.Properties);
            };
            scraper.PageScraped += (sender, e) =>
            {
                sender.Should().NotBeNull();
                e.Url.Should().NotBeNullOrEmpty();
                e.Settings.Should().Be(listPageSettings);
                this.AssertProperties(
                    e.Properties.ToList(),
                    listPageSettings.Properties);
            };

            //Act
            await scraper.Scrape();
        }