Выдает ошибку : ValueError: invalid literal for int() with base 10: ' '

Кусок кода:

def parser():
    PAGENATION = ui.lineEdit.text()
    PAGENATION = int(PAGENATION.strip())
    html = get_html(URL)
    if html.status_code == 200:
        noutbuki = []
        for page in range(1, PAGENATION):
            print(f'Парсим страницу: {page}')
            html = get_html(URL, params={'page': page})
            noutbuki.extend(get_content(html.text))
            save_doc(noutbuki, CSV)
        pass
    else:
        print('Error')

Вот консоль:

Traceback (most recent call last):
    File "C:\Users\Lendor\deskton\project\main.py", 68, in parser() 
    File "C: Users\Lendor\Desktop\project\main.py", line 55, in parser

PAGINATION - int(PAGINATION.strip())

ValueError: invalid literal for int() with base 10 ' ' 

Ответы (1 шт):

Автор решения: gil9red

Нужно проверять строку перед int, либо оберните try/except. А лучше вместо QLineEdit для работы с числами используйте QSpinBox

Для первого варианта:

pagenation = ui.lineEdit.text().strip()
if not pagenation:
    print('pagenation must by filled!')
    return

А лучше через исключение:

try:
    pagenation = int(ui.lineEdit.text().strip())
except ValueError:
    print('pagenation must by filled!')
    return

PS.

Переменными в верхнем регистре принято называть константами, а они объявляются как глобальные и лучше их не переопределять, поэтому в примере используется pagenation

→ Ссылка