Задать вопрос
@Mist8

Как понять, почему после логина через Grab, при переходе на страницу снова не залогинен?

Использую Grab, чтобы скачивать страницы сайта: classic.dzzzr.ru/moscow
Код работает на других ресурсах, но на этом после логина, при переходе на новые страницы - они показываются как незалогиненному.

import logging
from grab import Grab
logging.basicConfig(level=logging.DEBUG)

url = 'http://classic.dzzzr.ru/moscow/?section=arc&gmid=893&what=comment'
start_url = 'http://classic.dzzzr.ru/moscow'

g = Grab()

g.go(start_url)
g.doc.set_input("login","login")
g.doc.set_input("password","password")
g.doc.submit()
g.go(url)

f = open('page.html', 'w')
f.write(g.response.unicode_body())
f.close()


При этом, если распечатать ответ сразу после g.doc.submit() - получаю ответ с залогиненной страницы. Дальше если перехожу на страницу с помощью g.go(url) - я не залогинен. Хотя на сколько я понимаю по мануалам - Grab сохраняет куки и я должен был получить страницу для залогиненного пользователя.

Не понимаю куда копать, что смотреть, чтобы получать страницы как для залогиненного пользователя.
  • Вопрос задан
  • 423 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Pompeius_Magnus
Студент
docs.grablib.org/en/latest/grab/quickstart.html#ma... - почитал немного.
Я так понимаю, что когда Вы делаете g.go(url) - то начинаете новую сессию и поэтому логиниться надо заново.
Не нашел, где написано, что граб сохраняет куки.
docs.grablib.org/en/latest/grab/cookies.html?highl... - судя по этой странице их надо устанавливать руками, например, так:
>>> g = Grab()
>>> g.cookies.set(name='foo', value='bar', domain='yandex.ru', path='/host')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы