如何处理 pycurl.error - 超时异常?

jui*_*0xk 4 python curl for-loop pycurl python-2.7

我的 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
Run Code Online (Sandbox Code Playgroud)

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

我怎么能做到这一点?

先感谢您。

Cha*_*hak 5

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

    try: 
        #do stuff
    except pycurl.error:
        continue
Run Code Online (Sandbox Code Playgroud)