山东建设银行怎么招聘网站如何向谷歌提交网站
news/
2025/9/24 6:47:48/
文章来源:
山东建设银行怎么招聘网站,如何向谷歌提交网站,石家庄seo网络优化的公司,假山网站建设背景最近NBA总决赛吸引了不少球迷#xff0c;但是因为时差的关系#xff0c;人家在比赛#xff0c;我们在上班#xff0c;有时候上班又不好意思光明正大的看比赛#xff0c;那有什么办法 可以光明正大的看又不被发现呢。有#xff0c;自己动手丰衣足食#xff0c;Chrome… 背景最近NBA总决赛吸引了不少球迷但是因为时差的关系人家在比赛我们在上班有时候上班又不好意思光明正大的看比赛那有什么办法 可以光明正大的看又不被发现呢。有自己动手丰衣足食ChromeDriverHtmlAgilityPack爬取比赛实时比分。概述WebDriver 就是对浏览器提供的原生API进行封装使其成为一套更加面向对象的Selenium WebDriver API。使用这套API可以操控浏览器的开启、关闭打开网页操作界面元素控制Cookie还可以操作浏览器截屏、安装插件、设置代理、配置证书等。HtmlAgilityPack是.net下的一个HTML解析类库。支持用XPath来解析HTML。这个意义不小为什么呢因为对于页面上的元素的xpath某些强大的浏览器能够直接获取得到并不需要手动写。节约了大半写正则表达式的时间当然正则表达式有时候在进一步获取的时候还需要写但是通过xpath解析之后正则表达式已经要匹配的范围已经非常小了。而且不用正则表达式在整个页面源代码上匹配速度也会有提升。总而言之通过该类库先通过浏览器获取到xpath获取到节点内容然后再通过正则表达式匹配到所需要的内容无论是开发速度还是运行效率都有提升。代码实现下面我们来看下如何使用ChromeDriverHtmlAgilityPack爬取比赛实时比分。抓取网页//apistring url https://sports.qq.com/kbsweb/game.htm?mid model.TxMatchId;// string url https://kbs.sports.qq.com/kbsweb/game.htm?mid100000:55370464;// MatchUpdate model new MatchUpdate();var cds ChromeDriverService.CreateDefaultService();//是否应隐藏服务的命令提示符窗口cds.HideCommandPromptWindow true;ChromeOptions options new ChromeOptions();options.AddArguments(--test-type, --ignore-certificate-errors);// options.AddArguments(user-agentmozilla/5.0 (linux; u; android 2.3.3; en-us; sdk build/ gri34) applewebkit/533.1 (khtml, like gecko) version/4.0 mobile safari/533.1);options.AddArgument(enable-automation);// options.setBinary(C:/Program Files (x86)/Google/Chrome/chrome.exe);var r ZhimaHttpProxy.GetProxy(false);if (r ! null){Console.WriteLine(r.Address.Host);Console.WriteLine(r.Address.Port);string proxy_Host r.Address.Host;int proxy_Post r.Address.Port;string Ex_Proxy_Name proxy.zip;options.Proxy null;options.AddArguments(--proxy-server proxy_Host : proxy_Post.ToString());options.AddExtension(Ex_Proxy_Name);}if (IsHideMode)options.AddArgument(headless);string dic System.Environment.CurrentDirectory \\cos;if (IsHideMode){using (IWebDriver driver new OpenQA.Selenium.Chrome.ChromeDriver(cds, options, TimeSpan.FromSeconds(120))){Excule(driver, url, model);}}else{using (IWebDriver driver new OpenQA.Selenium.Chrome.ChromeDriver(dic, options, TimeSpan.FromSeconds(120))){Excule(driver, url, model);}}解析网页HtmlAgilityPack.HtmlDocument doc new HtmlAgilityPack.HtmlDocument();doc.LoadHtml(Helper.ReadTxt(System.Environment.CurrentDirectory \\PageSource\\ info.TxMatchId.Replace(:, _) .txt));int? HomeTeamScore null;int? GuestTeamScore null;ListMatchScore MatchScoreList new ListMatchScore();HtmlNode titleNodes doc.DocumentNode.SelectSingleNode(//div[classinner]);var titleNodes2 doc.DocumentNode.SelectSingleNode(//div[classcontent-wrapper]);if (titleNodes2 ! null)// if (false){Console.WriteLine(titleNodes2.InnerText);var host titleNodes2.SelectSingleNode(//div[classteam-goal host]);var arr host.InnerText.Replace(\r\n, |);var arrs arr.Split(|);arrs arrs.Where(o !string.IsNullOrWhiteSpace(o)).Select(o o.Split(()[0].Trim()).ToArray();HomeTeamScore int.Parse(arrs[1]);MatchScoreList.Add(new MatchScore() { TeamName arrs[0], TeamScore HomeTeamScore });var guest titleNodes2.SelectSingleNode(//div[classteam-goal guest]);var arr2 guest.InnerText.Replace(\r\n, |);var arrs2 arr2.Split(|);arrs2 arrs2.Where(o !string.IsNullOrWhiteSpace(o)).Select(o o.Split(()[0].Trim()).ToArray();GuestTeamScore int.Parse(arrs2[1]);MatchScoreList.Add(new MatchScore() { TeamName arrs2[0], TeamScore GuestTeamScore });}else{var a titleNodes.SelectNodes(//a[data-targetteamName]);var score titleNodes.SelectNodes(//span[classscore]);if (score ! null){int i 0;foreach (var item in score){SetText(\r\n item.InnerText?.Trim());if (i 0){HomeTeamScore Convert.ToInt32(item.InnerText?.Trim());}if (i 1){GuestTeamScore Convert.ToInt32(item.InnerText?.Trim());}i;}}if (a ! null){int i 0;foreach (var item in a){SetText(\r\n item.InnerText?.Trim());if (i 0){MatchScoreList.Add(new MatchScore() { TeamName item.InnerText?.Split(()[0].Trim(), TeamScore HomeTeamScore });}if (i 1){MatchScoreList.Add(new MatchScore() { TeamName item.InnerText?.Split(()[0].Trim(), TeamScore GuestTeamScore });}i;}}}string statusstr ;var t titleNodes.SelectSingleNode(//div[classdatetime-live-desc]);SetText(\r\n t.InnerText?.Trim());statusstr t.InnerText?.Trim();var Status info.Status;if (!string.IsNullOrWhiteSpace(statusstr) statusstr.Contains(已结束)){Status MatchStatus.End;}最后再搞个小弹框把数据输出即可。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915116.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!