2013-11-11 3 views
0

Я стараюсь войти на этот site. У меня всегда есть ошибка 403.Запросы на Python 403 на пост

код:

import requests 
session = requests.session() 
headers = {'User-Agent' : 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'} 
login = 'email' 
password = 'my_pass' 
url_login = 'https://www.avito.ru/profile/' 
r = session.post(url_login, headers=headers, allow_redirects=True, verify=True, auth=(login, password)) 
or 
r = requests.post(url_login, data={'login':login, 'password': password}, auth=(login, password), allow_redirects=True, headers=headers,) 


print r.status_code 

или все из here возвращает 403. Что проблема? Да, я могу использовать файлы cookie из браузера, но я хочу понять, почему этот код неправильный. Как это исправить?

Спасибо.

+0

Вы хотите отправить запрос POST в '/ profile/login' вместо этого? –

+0

@JonClements да – tim

ответ

1

Прежде всего, вы пытаетесь отправить сообщение /profile, а действие формы входа - /profile/login.

Во-вторых, вы отправляете свои учетные данные как в форме data, так и в параметрах auth. auth предназначен для базовой аутентификации HTTP, и это, вероятно, не то, что вы хотите. В этом нет необходимости.

В-третьих, имейте в виду, что ошибка 403 Forbidden - это не то же самое, что и 401 Unauthorized. 403 означает, что сервер отказывается отвечать на него, и аутентификация не будет иметь никакого значения. Конечно, есть шанс, что кто бы ни реализовал его, не знает разницы, но также вероятно, что они отслеживают что-то еще и пытаются предотвратить автоматический доступ, как вы пытаетесь сделать.

+0

да, я знаю. но та же ошибка – tim

+0

Проверьте мой обновленный ответ. –

Смежные вопросы