Выдает ошибку : 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