Как получить http страницу, используя механизированные куки? - PullRequest
3 голосов
/ 03 октября 2009

Существует объект механизации Python с формой, в которой почти все значения установлены, но еще не отправлены. Теперь я хочу получить другую страницу, используя куки из экземпляра механизации, но без сброса страницы, форм и т. Д., Например так что значения остаются установленными (мне просто нужно получить строку тела другой страницы, ничего больше). Так есть ли способ:

  1. Скажите механизму не сбрасывать страницу (возможно, через UserAgentBase)?
  2. Сделать urllib2 использовать механизированную баночку с печеньем? NB: urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar) не работает
  3. Любой другой способ передать cookie на urllib?

Ответы [ 3 ]

5 голосов
/ 04 октября 2009

И правильный ответ:

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.br._ua_handlers["_cookies"].cookiejar))
opener.open(imgurl)
2 голосов
/ 03 октября 2009

Некоторые дикие идеи:

  • Получить вторую страницу перед заполнением формы?
  • Или получить новую страницу и затем перейти обратно ()? Хотя, возможно, это сбросит значения.
2 голосов
/ 03 октября 2009

Не знаю, сработает ли это, но почему бы вам не попробовать глубокое копирование экземпляра механизации, например

from copy import deepcopy
br = Browser()
br.open("http://www.example.com/")
# Make a copy for doing other stuff with
br2 = deepcopy(br)
# Do stuff with br2
# Now do stuff with br
...