【问题标题】:How can I handle a pycurl.error - Timed out exception?如何处理 pycurl.error - 超时异常?
【发布时间】:2017-04-04 06:34:06
【问题描述】:

我的 PyCurl 代码的目的是遍历 IP 地址数组,然后打印每个 IP 地址的响应正文。

唯一的问题是,一些IP实际上是离线的,当PyCurl无法连接到IP时,它会出错并退出脚本。

我希望脚本做的是,如果 PyCurl 无法连接到 IP,则跳到下一个。这应该很简单,但我不确定我应该如何重写我的代码来允许这个异常。

这是我的代码:

for x in range (0, 161):

url = 'http://' + ips[x] + ':8080/version/'

storage = StringIO()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, storage.write)
#c.perform errors and once it errors, I would like to increment x to skip to the next IP.
c.perform()
c.close()
content = storage.getvalue()
print content

如上,c.perform 出错,一旦出错,我想增加 x 以跳到下一个 IP。

我怎样才能做到这一点?

提前谢谢你。

【问题讨论】:

    标签: python python-2.7 for-loop curl pycurl


    【解决方案1】:

    perform 在失败时引发 pycurl.error 异常。所以你需要在你的代码中处理它。

        try: 
            #do stuff
        except pycurl.error:
            continue
    

    【讨论】:

    • 太棒了,非常感谢。还有一个问题;我怎样才能再次进入for循环,因为一旦我处理了错误,我就无法弄清楚如何重新进入for循环并从我所在的位置开始。
    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2017-01-24
    • 2011-02-17
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多