Как я могу справиться с пикурлом?ошибка-тайм-аут исключение?


Цель моего кода 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. выполните ошибки и как только это ошибки, я хотел бы увеличить x, чтобы перейти к следующему IP.

Как я смогу это сделать?

Заранее благодарю вас.

1 2

1 ответ:

perform вызывает pycurl.error исключение при сбое. Поэтому вам нужно обработать это в своем коде.

    try: 
        #do stuff
    except pycurl.error:
        continue