Requests

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Изучаю статью.
Код:
Python:
import requests
from requests.exceptions import HTTPError
 
for url in ['https://api.github.com', 'https://api.github.com/invalid']:
    try:
        response = requests.get(url)
 
        # если ответ успешен, исключения задействованы не будут
        response.raise_for_status()
    except HTTPError as http_err:
        print(f'HTTP error occurred: {http_err}')  # Python 3.6
    except Exception as err:
        print(f'Other error occurred: {err}')  # Python 3.6
    else:
        print('Success!')
выдает ошибку:
Код:
  File "pars_regu.py", line 11
    print(f'HTTP error occurred: {http_err}')  # Python 3.6
                                           ^
SyntaxError: invalid syntax
 

Jerry

Пользователь
Пользователь
Июл 28, 2020
29
12
3
Похоже ругается на f-строку. Какой версией питона запускаете? Должна быть не ниже 3.6
 

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
А как поправить для Python 3.4.3?
 

Ketovx

Новичок
Пользователь
Авг 1, 2020
9
2
3
23
RF, KZN
А как поправить для Python 3.4.3?
В Python 3.4 есть замечательная функция format().
Поменяйте код на следующее

Код:
print('HTTP error occurred: {}'.format(http_err)) # Python 3.6

Инструкция по функции format - https://pyformat.info/
 
  • Мне нравится
Реакции: pums

Jerry

Пользователь
Пользователь
Июл 28, 2020
29
12
3
А как поправить для Python 3.4.3?
Попробуйте
Python:
print('HTTP error occurred: {}'.format(http_err))
 
  • Мне нравится
Реакции: pums

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Благодарю за ответы. Сейчас делаю по этому примеру
Python:
>>> requests.get('https://api.github.com', verify=False)
InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
  InsecureRequestWarning)
<Response [200]>

По примеру из одного видео модифицировал код, чтобы парсилось с просроченным сертификатом
Python:
import requests
from html.parser import HTMLParser
response = requests.get('https://yandex.ru/',  verify=False)
#посмотреть весь документ мы сможем командой
print(response.text)
Выдает в консоль
Код:
C:\Python34\lib\site-packages\urllib3\connectionpool.py:847: InsecureRequestWarn
ing: Unverified HTTPS request is being made. Adding certificate verification is
strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.h
tml#ssl-warnings
  InsecureRequestWarning)
Traceback (most recent call last):
  File "p_16_5.py", line 6, in <module>
    print(response.text)
  File "C:\Python34\lib\encodings\cp866.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xab' in position 33
464: character maps to <undefined>
Что в переводе:
Код:
C: \ Python34 \ lib \ site-packages \ urllib3 \ connectionpool.py: 847: InsecureRequestWarn
ing: выполняется неподтвержденный HTTPS-запрос. Добавление подтверждения сертификата
настоятельно рекомендуется. См .: https://urllib3.readthedocs.io/en/latest/advanced-usage.h.
TML # SSL-предупреждение
   InsecureRequestWarning)
Traceback (последний вызов последний):
   Файл "p_16_5.py", строка 6, в <module>
     печать (response.text)
   Файл "C: \ Python34 \ lib \ encodings \ cp866.py", строка 19, в кодировке
     вернуть codecs.charmap_encode (входные данные, self.errors, encoding_map) [0]
UnicodeEncodeError: кодек 'charmap' не может кодировать символ '\ xab' в позиции 33
464: символы отображаются на <undefined>
 
Последнее редактирование:

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Попробуйте поменять кодировку консоли на utf-8: chcp 65001. Вот тут можете почитать подробнее: ссылка.
 
  • Мне нравится
Реакции: pums

pums

Новичок
Пользователь
Авг 1, 2020
55
0
6
Вроде бы код стал работать.
Python:
import os
os.system('chcp 65001')
import requests
from html.parser import HTMLParser
response = requests.get('https://yandex.ru/',  verify=False)
response.encoding = 'utf-8'
#посмотреть весь документ мы сможем командой
print(response.text)
 

alext

Популярный
Пользователь
Май 10, 2020
288
66
28
Там же прям в этой строке в комментарии написано - Питон 3.6.
 

Форум IT Специалистов