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

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

14.02.2020, 23:11. Показов 1169. Ответов 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 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru