|
0 / 0 / 0
Регистрация: 23.03.2023
Сообщений: 2
|
||||||||||||||||
Хочу получить от requests.get(URL) простой ответ вместо "исключительной ситуации"23.03.2023, 16:06. Показов 1198. Ответов 2
На python раньше не писал. Моим основным занятием является разработка электронных устройств и их программирование. Т.е, как понимаете, от плюсов и ASM далеко не отхожу.
Но недавно нужно было написать коротенький код, который автоматизирует работу мартшки. Работа у обезьянки такова: Есть список сайтов в Excel (изначально 250 сайтов и теперь добавляются каждый день). Нужно каждое утро проверять на открываемость эти сайты. Как делает это обезьянка? Совершенно верно! - из Excel - Ctrl копи, в браузер - Ctrl вставил. И так по всему списку. Во истину Контрл Копи, Контрл Вставил, Ни в голове, ни в попе ни хрена не оставил. Вобщем не буду вдаваться в подробности как я оказался в этой компании, но меня по случаю попросили помочь примату, т.е. автоматизировать его труд. И я согласился. И возрадовались они. С выбором инструмента (языка и средcnв разработки) я особо не заморачивался. Просто наугад выбрал Python, тем более у них на машине уже стоял PyCharm и Python3. Кстати я совсем не жалею что выбрал именно Python (Они нашли друг друга из толпы случайно, как две половинки одного целого...... И жили они долго и счастливо.) Ладно хватит лирики, Ближе к делу. Я апошел следующим путем: 1. Вытащил список сайтов из Excel в обычный текстовый файл (например URLlist.txt) и оформил их там списком. 2. Далее в теле основной программы я поочереди в цикле for достаю из файла URLlist.txt по одному адресу как URLstr и делаю с ним следующее:
4. Потом по завершению проверки всех адресов сайтов все результаты из файла report.txt переписываются в файл xls с заданным форматированием и т.п. Четвертый пункт делается для того чтобы хозяин обезьянки ни чего не заподозрил. А то увидит как все стало легко и просто и решит что бедный зверек мало загружен работой. С вытекающими последствиями. Вобщем обезьянка стала счастливой и довольной. И сказал я - это хорошо. Ну а у меня как человека, пытающегося победить зло до конца, осталась в душе одна нерешенная задача, Которую надеюсь с вашей помощью решить. На самом деле конструкция
Но дело в том что проверяются сайты, которые на данный момент могут оказаться недоступны по разным причинам. Вот эти причины по которым недоступны сайты я и пытаюсь коллекционировать. Т.е. в отчете писать не только "не доступен", но и указывать причину. Казалось бы res.status_code и возвращает тот самый код в котором указывается причина отказа, но не тут то было. Как только происходит попытка выполнить requests.get(URLstr), а URLctr оказался из тех кто не в порядке, в программе сразу происходит ошибка и в окне выполнения я получаю "Process finished with exit code 1" Та делов то! подумал я и сразу сделал подобную конструкцию:
А мне ОБЕЩАЛИ! разные гугру, пишущие сайты о библиотеке requests, что если я, например поменяю в адресе сайта хотя бы одну букву и подставлю в requests.get название несуществующего сайта, то в ответ я должен буду получить код 404 а не вылет программы и не должен буду обрабатывать exceptions вручную. Вот собственно и вопрос - как получить от requests.get(URL) (если URL не открывается) адекватный ответ с кодом статуса а не ошибку выполнения?
0
|
||||||||||||||||
| 23.03.2023, 16:06 | |
|
Ответы с готовыми решениями:
2
Обработчик исключительной ситуации Возбуждение исключительной ситуации Возвращение исключительной ситуации |
|
Автоматизируй это!
|
|
| 23.03.2023, 16:33 | |
|
VMR, заметно что от плюсов вы далеко не отходите и это хорошо. Надо было спросить у обезьянки, которая по вашей вине скоро потеряет работу - как работает веб? И она бы сказала, что 404 и прочие ошибки возвращает сервер, то есть ТА сторона запроса(отвечающая), а эта сторона, то есть наш клиент в виде браузера или реквестс получает то, что получает, не более. Если владелец сервака не позаботился кидать 404 на кривые урлы то этого не будет, естественно если сайта больше нет по урлу то тоже просто некому вернуть 404, просто самого сервера нет.
Так что перехваты ХТТП ошибок -вполне себе нормальный подход. Коды ошибок можно получить только от верно настроенного сервака. я бы еще сделал парсинг ексельки, чтобы выкинуть из схемы текстовый файл, перебор в многопоточке и вместо гет head запрос, так будет побыстрее.
1
|
|
|
0 / 0 / 0
Регистрация: 23.03.2023
Сообщений: 2
|
|
| 23.03.2023, 17:42 [ТС] | |
|
Спасибо. Более менее понятно.
0
|
|
| 23.03.2023, 17:42 | |
|
Помогаю со студенческими работами здесь
3
Обработка исключительной ситуации Обработка исключительной ситуации Обработка исключительной ситуации Предотвращение исключительной ситуации Обработка исключительной ситуации с файлом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|