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的话浏览器0,1都打开,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个浏览器