У меня есть сценарии как на Python, так и на Ruby, которые работают в течение нескольких дней за раз и полагаются на интернет, чтобы перейти в определенные домены и собрать данные. Есть ли способ внедрить проверку сетевого подключения в мой скрипт, чтобы я мог приостановить/повторить итерации цикла, если нет подключения и только перезагрузка при наличии возможности подключения?Как программно проверить, имеет ли ПК подключение к Интернету с использованием Python и/или Ruby?
0
A
ответ
2
Ну в Python я сделать что-то подобное с попыткой за исключением блока, как следующее:
import requests
try:
response = requests.get(URL)
except Exception as e:
print "Something went wrong:"
print e
это всего лишь пример того, что вы могли бы сделать, вы можете проверить Error_Code или какой-либо информации о чрезвычайном и в соответствии с этим вы можете определить, что делать. Обычно я запускаю скрипт в течение 10 минут, когда что-то пойдет не так по запросу.
import time
time.sleep(600)
4
Там может быть более элегантное решение, но я хотел бы сделать это:
require 'open-uri'
def internet_connectivity?
open('http://google.com')
true
rescue => ex
false
end
1
вот unix-конкретное решение:
In [18]: import subprocess
In [19]: subprocess.call(['/bin/ping', '-c1', 'blahblahblah.com'])
Out[19]: 1
In [20]: subprocess.call(['/bin/ping', '-c1', 'google.com'])
Out[20]: 0
т.е. пинг возвращает 0, если пинг успешно