Установите Qt5.x.0 (какая версия вам нужна), найдите путь установки и скопируйте весь файл gcc_64/lib/*
в
/usr/lib/x86_64-linux-gnu/*
>>> import httplib
>>>
>>> def exists(site, path):
... conn = httplib.HTTPConnection(site)
... conn.request('HEAD', path)
... response = conn.getresponse()
... conn.close()
... return response.status == 200
...
>>> exists('http://www.fakedomain.com', '/fakeImage.jpg')
False
Если статус не равен 200, ресурс не существует по URL-адресу. Это не значит, что все прошло. Если сервер возвращает 301 или 302, это означает, что ресурс все еще существует, но по другому URL. Чтобы изменить функцию для обработки этого случая, нужно просто изменить строку проверки состояния на return response.status in (200, 301, 302)
.
Спасибо за все ответы, в конечном итоге использовать следующее:
try:
f = urllib2.urlopen(urllib2.Request(url))
deadLinkFound = False
except:
deadLinkFound = True
Существуют проблемы с предыдущими ответами, когда файл находится на ftp-сервере ( ftp://url.com/file ), следующий код работает, когда файл находится в ftp, http или https:
import urllib2
def file_exists(url):
request = urllib2.Request(url)
request.get_method = lambda : 'HEAD'
try:
response = urllib2.urlopen(request)
return True
except:
return False
Это может быть достаточно, чтобы увидеть, существует ли URL-адрес файла.
import urllib
if urllib.urlopen('http://www.fakedomain.com/fakeImage.jpg').code == 200:
print 'File exists'
Похоже, http://www.fakedomain.com/fakeImage.jpg
автоматически перенаправляется на http://www.fakedomain.com/index.html
без каких-либо ошибок.
Перенаправление для ответов 301 и 302 выполняется автоматически, без отправки ответа пользователю.
Взгляните на HTTPRedirectHandler , вам может потребоваться создать подкласс для его обработки.
Вот пример из Dive Into Python:
http://diveintopython3.ep.io/http-web-services.html#redirects
Я думаю, вы можете попробовать отправить http-запрос на url и прочитать ответ. Если исключение не было поймано, то, вероятно, оно существует.
Попробуйте использовать Mechanize :
import mechanize
br = mechanize.Browser()
br.set_handle_redirect(False)
try:
br.open_novisit('http://www.fakedomain.com/fakeImage.jpg')
print 'OK'
except:
print 'KO'