Example #1
0
        public async Task <Page> newPage()
        {
            var page = await _browser.NewPageAsync();

            DeviceDescriptor IPhone = DeviceDescriptors.Get(DeviceDescriptorName.IPhone6);
            var dic = new Dictionary <string, string>();

            dic.Add("Referer", _settings.Bet365.Url.MainPage.ToString());
            dic.Add("Accept-Encoding", "gzip, deflate, br");
            dic.Add("Accept-Language", "zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6");
            dic.Add("Connection", "keep-alive");
            await page.EmulateAsync(IPhone);

            await page.SetRequestInterceptionAsync(true);

            await page.SetExtraHttpHeadersAsync(dic);

            page.Request += async(sender, e) =>
            {
                if (e.Request.ResourceType == ResourceType.Image)
                {
                    await e.Request.AbortAsync();
                }
                else
                {
                    await e.Request.ContinueAsync();
                }
            };

            return(page);
        }
Example #2
0
        public async Task <string> GetMatchListAsync(string leagueKey)
        {
            var browser = await Puppeteer.LaunchAsync(new LaunchOptions
            {
                ExecutablePath = "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe",
                Headless       = false
            });

            var page = await browser.NewPageAsync();

            DeviceDescriptor IPhone = DeviceDescriptors.Get(DeviceDescriptorName.IPhone6);
            var dic = new Dictionary <string, string>();

            dic.Add("Referer", _settings.Bet365.Url.MainPage.ToString());
            dic.Add("Accept-Encoding", "gzip, deflate, br");
            dic.Add("Accept-Language", "zh-TW,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6");
            dic.Add("Connection", "keep-alive");
            await page.EmulateAsync(IPhone);

            await page.SetRequestInterceptionAsync(true);

            await page.SetExtraHttpHeadersAsync(dic);

            page.Request += async(sender, e) =>
            {
                if (e.Request.ResourceType == ResourceType.Image)
                {
                    await e.Request.AbortAsync();
                }
                else
                {
                    await e.Request.ContinueAsync();
                }
            };
            var waitUntil = new NavigationOptions();

            waitUntil.WaitUntil = new WaitUntilNavigation[1];
            waitUntil.WaitUntil.Append(WaitUntilNavigation.Networkidle2);
            await page.GoToAsync(_settings.Bet365.Url.MainPage.ToString(), waitUntil);

            var waitOption = new WaitForSelectorOptions
            {
                Timeout = 20000,
                Hidden  = true
            };
            var preLoadOuter = await page.WaitForXPathAsync(_settings.Bet365.ElementXpath.PreLoader, waitOption);

            waitOption.Hidden = false;
            var selectSport = await page.WaitForXPathAsync(_settings.Bet365.ElementXpath.Soccer, waitOption);

            Thread.Sleep(5000);
            await selectSport.ClickAsync();

            var selectLeague = await page.WaitForXPathAsync("//*[@data-sportskey='" + leagueKey.Trim() + "']", waitOption);

            Thread.Sleep(1000);
            await selectLeague.ClickAsync();

            //Thread.Sleep(2000);
            var selectMatch = await page.WaitForXPathAsync("//*[@data-fixtureid]", waitOption);

            // await selectMatch.ClickAsync();
            return(await page.GetContentAsync());
        }