Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256

Как работать с файлом на https сервере

14.02.2020, 23:11. Показов 1176. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть три вопроса.
1. Как проверить есть ли файл на https сервере?
2. Как узнать размер файла на https сервере?
3. Как загрузить файл с https сервера?

Писал подобное на Visual Basic .NET. Работает отлично. Но как на Python не знаю.
Помогите пожалуйста!

Код функции на Visual Basic.NET

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Function StartDownload(ByVal Url As String)
        ' Запрос клиента
        Dim myHttpWebRequest As HttpWebRequest = HttpWebRequest.Create(Url)
        myHttpWebRequest.Host = Url.Substring(Url.IndexOf(":") + 3, Url.IndexOf("/", Url.IndexOf(":") + 3) - (Url.IndexOf(":") + 3))
        myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0"
        myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        myHttpWebRequest.Headers.Add("Accept-Language", "ru")
        myHttpWebRequest.Headers.Add("Accept-Encoding", "")
        myHttpWebRequest.Headers.Add("DNT", "1")
        Dim myHttpWebResponse As HttpWebResponse = myHttpWebRequest.GetResponse()
        ' Ответ сервера
        file_info = myHttpWebResponse.ContentLength
        status_file = myHttpWebResponse.StatusCode
 
        myHttpWebResponse.Close()
 
        Return True
    End Function
Мой вариант на Python, который выдает ошибку.
Python
1
2
3
4
import urllib.request
 
site = urllib.request.urlopen('https://static.hubber.pro/exporter/file/get-file-content?shop=5ba9209eda079701aabd2116&format=yml&schema=prom')
print("FileSize: ", site.length)
Ошибка "urllib.error.HTTPError: HTTP Error 403: Forbidden"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2020, 23:11
Ответы с готовыми решениями:

Как работать с https?
Как работать с https в php? file_get_contents - не катит когда передаю get запросы . нужно к примеру сделать GET запрос на...

C++ socket как работать с https?
Собж в теме, немогу найти муналы, подскажите где почитать

Как работать с сайтами HTTPS через Proxy Server
Добрый день, помогите пожалуйста разобраться, нашел код : Web proxy server Что нужно в нем поменять что бы можно было просматривать...

6
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
15.02.2020, 13:16
1) можно сделать HEAD-запрос. Или GET, но тогда вернётся сам файл. И парсить заголовки с ответом.
2) аналогично - парсить заголовки ответа.
3) GET-запрос - в теле вернётся файл.

В вашем питоновском коде не хватает заголовков в запросе. Поставьте эту библитеку: https://requests.readthedocs.io/en/master/ и передавайте правильные заголовки в запросе.
0
4 / 4 / 8
Регистрация: 11.11.2014
Сообщений: 256
15.02.2020, 13:25  [ТС]
Рыжий Лис, в том то и дело, что мне на первом этапе не надо возвращать (загружать) весь файл.

Вроде что-то нарыл, но похоже здесь загружается весь файл! Возможно я не прав.

Вот код
Python
1
2
3
4
5
6
7
8
9
10
import requests
 
hearders = {'headers': 'Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0'}
n = requests.get('https://static.hubber.pro/exporter/file/get-file-content?shop=5ba9209eda079701aabd2116&format=yml&schema=prom',
                 headers=hearders)
a1 = n.status_code
a2 = len(n.headers)
 
print(a1)
print(a2)
Здесь возвращается размер файла не понятно какой.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
15.02.2020, 13:27
Я же говорю: requests.head. Тогда будет возвращаться только заголовки. Но не все серверы разрешают такое.
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
19.02.2020, 15:27
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Но не все серверы разрешают такое.
скорей не указывают
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
19.02.2020, 15:36
Цитата Сообщение от Wolflind Посмотреть сообщение
скорей не указывают
Не. Серверы могут не указывать в заголовках размер файла.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
curl -vvv -X HEAD https://www.cyberforum.ru/customavatars/avatar788458_1.gif
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the 
Warning: way you want. Consider using -I/--head instead.
*   Trying 185.112.80.14...
* TCP_NODELAY set
* Connected to www.cyberforum.ru (185.112.80.14) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
…
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
…
> HEAD /customavatars/avatar788458_1.gif HTTP/2
> Host: www.cyberforum.ru
> User-Agent: curl/7.58.0
> Accept: */*
> 
< HTTP/2 200 
< server: ngjit
< set-cookie: …
< date: Tue, 18 Feb 2020 12:27:48 GMT
< content-type: image/gif
< last-modified: Wed, 12 Sep 2018 19:11:19 GMT
< etag: "5b9964d7-144b"
< expires: Mon, 18 May 2020 12:27:48 GMT
< cache-control: max-age=7776000
< accept-ranges: bytes
< age: 86735
< 
* Connection #0 to host www.cyberforum.ru left intact
Добавлено через 33 секунды
А вот на HEAD-запросы могут отвечать неадекватно.
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
20.02.2020, 07:21
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Не. Серверы могут не указывать в заголовках размер файла.
а я что написал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.02.2020, 07:21
Помогаю со студенческими работами здесь

Как работать с файлом .db?
У меня есть права рут на телефоне. Я копировал файл .db приложения из data/data на SD Card и как я теперь могу программно прочитать...

Как работать с текстовым файлом?
Подскажите пожалуйста: Дан текстовый файл, в котором хранятся данные об учениках нескольких школ: фамилия, имя, отчество, адрес (улица,...

Как работать с текстовым файлом?
Подскажите пожалуйста, как записать в имеющийся текстовый файл text.txt фрагмент из нескольких строк и как можно было бы его обозначить с...

Как работать с созданным файлом
День добрый! Пишу прогу по стеганографии (MFC). Сохраняю файл в изображении. При чтении, общая последовательность моих действий следующая: ...

Как работать со звуковым файлом в С++?
Вообщем задали дз, а в пограммировании я 0, смогли бы помоч? 1)В каком виде будет открыт в С++ звуковой файл? 2) Работать со звуковым...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru