Если вы входите через веб-страницу, сайт, вероятно, использует аутентификацию на основе файлов cookie. (Технически он может использовать базовую аутентификацию HTTP, встраивая свои учетные данные в URI, но в большинстве случаев это будет глупо.) Если вы получите отдельный маленький диалог с полем имени пользователя и пароля ( как этот ), он использует базовую аутентификацию HTTP.
Если вы попытаетесь войти в систему с использованием базовой аутентификации HTTP и вернуться на страницу входа, как это происходит с вами, это является определенным признаком того, что сайт не использует базовую аутентификацию HTTP.
В наши дни большинство сайтов используют аутентификацию на основе файлов cookie. Чтобы сделать это с помощью HTTP-cilent, такого как urllib2, вам нужно будет выполнить HTTP POST полей в форме входа в систему. (Возможно, вам сначала потребуется запросить форму входа в систему, так как сайт может содержать cookie-файл, который вам даже необходим для входа, но обычно это не обязательно.) Это должно вернуть страницу «успешно вошел в систему», которую вы можете проверить , Сохраните куки, которые вы получите по этому запросу. При выполнении следующего запроса, включите эти куки. Каждый ваш запрос может отвечать куки-файлами, и вам нужно сохранить их и отправить их снова со следующим запросом.
urllib2 имеет функцию, называемую «jar cookie», которая автоматически обрабатывает файлы cookie для вас при отправке запросов и получении веб-страниц. Это то, что вы хотите.