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); }
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()); }