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

本文介绍了一种使用浏览器自动化工具批量打开和抓取网页的方法,通过执行JavaScript代码实现窗口的快速打开与切换,有效提升数据抓取效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

void craw()
{
int currentIndex=0;
List<string > urlList=new List<string>();
 for (int i = 0; i < 20; i++)
 {
 urlList.Add("https://mp.youkuaiyun.com/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个刚刚好,打开窗口过多,会被浏览器给封掉的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值