Что я делаю не так?
Просто в данном запросе "https://bablobit.ru/index.php?login/login" присутствует redirect. А как мы знаем, когда в пост запросе присуствует redirect, он будет возращать html.
with open('1.html', 'w', encoding='utf-8') as f:
    f.write(r.text)
Т.е. предпологаю что у тебя здесь вывелось html с окном для входа.

Для того чтоб прочитать redirect, считываем r.history. А так как обычно на подобных форумах переадресация лишь одна, то можем считываем лишь первый, а так же можно вывести headers. Обычно на подобных, но чуть усложнённых версиях, как раз в headers генерируется session , который по дефолту обычно существует 30 дней. Благодаря этому session token потом при помощи get запросов, можем получать xftoken - который обычно по дефолту существует ~12 часов, или чуть больше.

Так что для обработки пост запроса, можем использовать такой вот вид. Как раз таки в headers попадаются или токен сессии, или статус входа, не помню точно, относительно давно это было.
print(r.history[0].headers, r.history[0].text)

Update: Вот к примеру, в случае успешной авторизации, у r.status_code - будет равно 303. А в r.history[0].headers выведет что-то по типу 
Set-Cookie: xf_user=85376%2CH4tard146PUjjcLAYflx8-eovp8AmraDqd0lkf-A; expires=Thu, 28-Apr-2022 08:01:40 GMT; Max-Age=31536000; path=/; secure; HttpOnly
Set-Cookie: xf_session=73Ox5QmBBLZEpYBL940YTm_iMX7u2ufR; path=/; secure; HttpOnly
Эти set-cookie, берём, и добавляем к изначальным headers--> cookie. И вуаля.
Postman юный хацкер уже освоил?