python爬虫(4)selenium定时停止加载及页面卡死的处理方式

时间:2022-03-10 21:54:03

selenium定时停止加载

selenium默认是加载完网页才进行下一步的,有的网页要几十秒甚至分钟才加载完,但我们需要的信息基本上只要几秒就已经加载完了,使用定时停止加载可以节省大量的时间。

    driver_0= webdriver.Chrome(executable_path=r"C:\chromedriver.exe",chrome_options=chrome_options)#路径前面要加个r,表示不进行转义,相当于c#的@
    driver_0.set_page_load_timeout(10)#设置页面最长加载时间,超过会抛出异常

    try:#超时后会停止加载,不需要其它的。接住异常就行
        driver_0.get(furl)
    except Exception as e:
        print(e)

页面卡死的处理方式

这里用的是chrome浏览器,在进行频繁的操作有时会出现页面卡死,不动的情况,不知道是哪里出现了问题,不过重启浏览器可以很好的解决这个问题

  
          def OpenBrower(a=2):
                global driver_0
                global driver_1
                chrome_options = webdriver.ChromeOptions()#不加载图片
                prefs = {"profile.managed_default_content_settings.images":2}
                chrome_options.add_experimental_option("prefs",prefs)
                if a==0 or a==2 :#a==2的话浏览器01都打开,a==1只打开浏览器1
                    driver_0= webdriver.Chrome(executable_path=r"C:\chromedriver.exe",chrome_options=chrome_options)#路径前面要加个r,表示不进行转义,相当于c#的@
                    driver_0.set_page_load_timeout(10)#页面最长加载时间,超过会抛出异常
                if a==1 or a==2 :
                    driver_1= webdriver.Chrome(executable_path=r"C:\chromedriver.exe",chrome_options=chrome_options)
                    driver_1.set_page_load_timeout(3) 


            try:
                GetContent()#获取第一个链接的内容,并写入数据库
                val_hot_now+=1
            except Exception as e:
                print("出了点小问题,重启下浏览器",e)
                driver_1.quit()#虽然找不到是什么原因,不过重启浏览器还挺有效,就是耗时间
                OpenBrower(1)#只打开第1个浏览器