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

C#使用selenium的爬虫速度再提升十倍的方法在这

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

紧接上文啊!
这个方法
其实就是使用打开窗口的方式。使用下面这行核心代码:

 driver.ExecuteScript("window.open(\"" + url + "\")"); 
  • 1

就这么简单。
你可以一次性打开浏览器的20个窗口,然后获取他们的窗口句柄,通过切换窗口句柄,来得到源码,进行操作。

void craw()
{
int currentIndex=0;
List<string > urlList=new List<string>();
 for (int i = 0; i < 20; i++)
 {
 urlList.Add("https://mp.csdn.net/mdeditor/99235045");
}
 for (int i = 0; i < 20; i++)
 {
  driver.ExecuteScript("window.open(\"" + urlList[currentIndex] + "\")");
   currentIndex++;        
}
 List<string> handleList = new List<string>();
                var windowHandles = driver.WindowHandles;
               
                foreach (var item in windowHandles)
                {
                    handleList.Add(item);
                }
      for (int i = 1; i < handleList.Count; i++)
                {
                 driver.SwitchTo().Window(handleList[handleList.Count-i]);//后面的先加载完
                   if (i ==1)
                        {
                            Thread.Sleep(5000);
                        }
                        Console.WriteLine(driver.Title);//你对网址的操作,我就是输出了一下标题
                }      

} 

你如果是同时达到五个浏览器,这些二十个窗口是同时进行加载的。最理想的情况下,网速内存都不考虑,那就是提高了近二十倍的速度。
不过这种事情,不可贪多,20个刚刚好,打开窗口过多,会被浏览器给封掉的。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:在C#中使用Selenium Webdriver的当前窗口截图 | ·下一条:Selenium+C#自动化脚本开发学习

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

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