Печенье с урлибом - PullRequest
       17

Печенье с урлибом

0 голосов
/ 22 мая 2010

Это, вероятно, покажется очень простым вопросом, и я совершенно не понимаю, почему это так сложно для меня.

Я хотел бы написать функцию, которая принимает три ввода: [url, data, cookies], которые будут использовать urllib (не urllib2) для получения содержимого запрошенного URL. Я подумал, что это будет просто, поэтому я написал следующее:

def fetch(url, data = None, cookies = None):
  if isinstance(data, dict): data = urllib.urlencode(data)
  if isinstance(cookies, dict):
    # TODO: find a better way to do this
    cookies = "; ".join([str(key) + "=" + str(cookies[key]) for key in cookies])
  opener = urllib.FancyURLopener()
  opener.addheader("Cookie", cookies)
  obj = opener.open(url, data)
  result = obj.read()
  obj.close()
  return result

Насколько я могу судить, это не работает (кто-нибудь может это подтвердить?), И я в замешательстве.

1 Ответ

1 голос
/ 22 мая 2010

Вы не сказали, что пошло не так, когда вы пытались, или какой http-сервер вы тестируете. Запрос был выполнен? Сервер не смог распознать ваши куки? Одна вещь, которая бросается в глаза, это то, что вы потенциально можете объединить несколько файлов cookie в одно поле заголовка. Работает ли это, если вы используете отдельные поля заголовка Cookie:?

...