@AnKus

Как обработать исключение по POST запросу, если его нет?

Здравствуйте, уважаемые знатоки. Подскажите, пожалуйста. Есть ситуация, когда сайт отдает данные в ответ на отправку пост-запроса. Ссылок, которые обработать много, не во всех карточках есть куда отправлять запрос. То есть, чтоб увидеть контакты, требуется нажать на кнопку "показать", при этом отправляется пост-запрос. Данная кнопка есть не везде, посему некуда отправлять запрос и возникает ошибка, которую требуется обработать и продолжать цикл. Заранее прошу прощения, похожий вопрос у меня уже был, но он канул в лету и, вероятно в том посте я ответа не дождусь. Вот часть кода, который отправляет запрос (остальной код нет смысла публиковать, т.к. он роли не играет в данной ситуации):
# Получаем id из адресной строки:
        idn = str(soup.find('span', {'itemprop': 'item'}).get('itemid')).replace('5140', '')# Обрезаем ненужный элемент
        x = ''.join(re.findall('[0-9]+', idn))# вычленяем число(id), преобразуем в строку и создаем переменную
        phone = requests.post(post_url, cookies=cookies, headers=headers, data=
        {'data_type': 'phone', 'item_id': {x}}).text # отправляем POST запрос, в значение data отправляем переменную 'x'
        mail = requests.post(post_url, cookies=cookies, headers=headers, data=
        {'data_type': 'email', 'item_id': {x}}).text


и ошибка:

Exception (Database Exception) 'yii\db\Exception' with message 'SQLSTATE[22003]: Numeric value out of range: 7 ERROR: value "598814733168" is out of range for type integer
The SQL being executed was: SELECT * FROM "qjmpf_companies" WHERE "id"='598814733168''


и далее следует хтмл код страницы

Буду благодарен за помощь
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@Jack444
Суть ошибки вообще в другом, и если так не понятно то достаточно переводчиком было воспользоваться.
Значение id летит как BIGINT а в бд тип стоит INTEGER, в итоге число в INTEGER не помещается вот и ошибка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
TalismanChet
@TalismanChet
Лицо зла
попробуй request.error или что-то такое в док-и найди
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы