Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 绕过Selenium中的IOErrors和HTTP异常_Python_Selenium - Fatal编程技术网

Python 绕过Selenium中的IOErrors和HTTP异常

Python 绕过Selenium中的IOErrors和HTTP异常,python,selenium,Python,Selenium,我正在尝试运行一个大型的清理工作,在Python中使用Selenium和PhantomJS。在正确运行大约24小时后,它会抛出几个不同的错误。对此进行了几次测试。显然,添加的任何新代码都有点难以测试,因为我必须等待24小时才能看到任何问题得到解决。所以,我想知道是否有经验的人可以看看这段代码,看看它是否合适。我试图做的是保持while循环在浏览器出错的情况下继续运行 while something: try: driver.execute_script("window.s

我正在尝试运行一个大型的清理工作,在Python中使用Selenium和PhantomJS。在正确运行大约24小时后,它会抛出几个不同的错误。对此进行了几次测试。显然,添加的任何新代码都有点难以测试,因为我必须等待24小时才能看到任何问题得到解决。所以,我想知道是否有经验的人可以看看这段代码,看看它是否合适。我试图做的是保持while循环在浏览器出错的情况下继续运行

while something:
    try:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    except httplib.HTTPException:
        print 'HTTPException'
        time.sleep(20)
        pass
    except IOError:
        print 'IOError'
        time.sleep(20)
        pass

你的代码看起来不错。您可以使用
except(httplib.HTTPException,IOError)作为e:
打印类型(e)。\uuuuu name\uuuuu
组合处理程序,并且您可以删除
过程:

while something:
    try:
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    except (httplib.HTTPException, IOError) as e:
        print type(e).__name__
        time.sleep(20)
我会在这里使用提供日志信息;
logger.exception()
函数将在输出中包含异常和回溯:

logger = logging.getLogger(__name__)

# ...

except (httplib.HTTPException, IOError) as e:
    logger.exception('Ignoring exception, sleeping for 20 seconds')
    time.sleep(20)

@textnet:no,
pass
表示什么都不做,只有当套件为空时才需要它。@textnet:old_length=len(driver.page_source)
行触发了该异常;这句话是不是《试一试》…除了《试一试》?这不在您的问题中。@textnet:请注意,
logger.exception()
记录异常的完整回溯,当捕获到异常时,该异常仍会被处理。@textnet:yes,
socket.error
IOError
的子类,因此不需要显式添加它。@textnet:您确实需要将所有需要保护的行放入
try
套件中。