Сценарий Python очищает неверный источник страницы. Я думаю, что не удается войти в систему правильно? - PullRequest
1 голос
/ 10 февраля 2012

Этот скрипт успешно получает объект ответа 200, получает cookie и возвращает исходную домашнюю страницу Reddit.Тем не менее, он должен получить источник подстраницы «недавние действия», доступ к которой можно получить только после входа в систему. Это заставляет меня думать, что он не может войти в систему соответствующим образом, но имя пользователя и пароль точные, я дважды проверил это.

#!/usr/bin/python
import requests
import urllib2

auth = ('username', 'password')
with requests.session(auth=auth) as s:
    c = s.get('http://www.reddit.com')
    cookies = c.cookies
    for k, v in cookies.items():
            opener = urllib2.build_opener()
            opener.addheaders.append(('cookie', '{}={}'.format(k, v)))
            f = opener.open('http://www.reddit.com/account-activity')
            print f.read()

Ответы [ 2 ]

0 голосов
/ 26 июля 2016

Я просто думаю, что у нас та же проблема.Я получаю код состояния 200 ок.Но сценарий никогда не регистрировал меня. Я получаю некоторые предложения и помощь.Надеюсь, вы дадите мне знать, что работает для вас тоже.Кажется, reddit тоже использует ту же систему.

Посетите эту страницу, где обсуждается моя проблема. Ошибка аутентификации при использовании запросов на сайте aspx

0 голосов
/ 10 февраля 2012

Похоже, вы используете стандартную «HTTP Basic» аутентификацию, которая не то, что Reddit использует для входа на свой веб-сайт. (Почти ни один веб-сайт не использует HTTP Basic (который вызывает модальное диалоговое окно с запросом аутентификации), но реализует свою собственную форму имени пользователя / пароля).

Что вам нужно сделать, это получить домашнюю страницу, прочитать поля формы входа, заполнить имя пользователя и пароль, отправить ответ на веб-сайт, получить полученный файл cookie, а затем использовать файл cookie в будущем. Запросы. Для вас тоже может быть множество других деталей, но вам придется поэкспериментировать.

...