专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

c#使用selenium过滑动验证码

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:44:53       共计:3621 浏览

滑动验证码如下:

 

1、vs引入以下三个包(.net core 3.1):

2、c#引用:


  1. private void SeleniumVertifyCode(Uri uri)
  2. {
  3. var options = new OpenQA.Selenium.Chrome.ChromeOptions();
  4. //不显示浏览器UI窗口
  5. options.AddArgument("-headless");
  6. using IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver(options);
  7. //先设置uri
  8. driver.Navigate().GoToUrl(uri);
  9. var cookie = driver.Manage().Cookies;
  10. //再添加cookie
  11. cookie.AddCookie(new Cookie("name", "value", ".com", "/", null));
  12. //再次访问验证码uri
  13. driver.Navigate().GoToUrl(uri);
  14. //反爬:设置windows.navigate.webdrive的值为undefine
  15. driver.ExecuteJavaScript("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");
  16. //查看网页源码
  17. //var source = driver.PageSource;
  18. //找到滑块元素
  19. var slide = driver.FindElement(By.CssSelector("#nc_1_n1z"));
  20. var verifyContainer = driver.FindElement(By.CssSelector(".nc-lang-cnt"));
  21. var width = verifyContainer.Size.Width;
  22. var action = new Actions(driver);
  23. //点击并按住滑块元素
  24. action.ClickAndHold(slide).Perform();
  25. Random random = new Random();
  26. int offset = 0;
  27. //模仿人工滑动
  28. const int minOffset = 10;
  29. const int maxOffset = 30;
  30. while (width > offset)
  31. {
  32. offset += random.Next(minOffset, maxOffset);
  33. action.MoveByOffset(offset, 0).Perform();
  34. var code = driver.FindElement(By.CssSelector(".nc-lang-cnt")).Text;
  35. if (code.Contains("验证通过"))
  36. {
  37. break;
  38. }
  39. System.Threading.Thread.Sleep(offset * minOffset);
  40. }
  41. //点击验证按钮
  42. action.Click(driver.FindElement(By.CssSelector("#verify"))).Perform();
  43. //退出webdriver
  44. driver.Quit();
  45. }

 

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:把视频网站用Hbuilderx打包成APP时,实现全屏横屏旋转的方法 | ·下一条:c# 从内存中释放Selenium chromedriver.exe

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有