Python crea cookies y luego carga una página con las cookies

Me gustaría acceder a una página web desde un progtwig de python. Tengo que configurar las cookies para cargar la página.
Usé la biblioteca httplib2, pero no encontré cómo agregar mi propia cookie

resp_headers, content = h.request("http://www.theURL.com", "GET") 

¿Cómo puedo crear cookies con el nombre y valor correctos, agregarlos a la función y luego cargar la página?
Gracias

 http = httplib2.Http() # get cookie_value here headers = {'Cookie':cookie_value} response, content = http.request("http://www.theURL.com", 'GET', headers=headers) 

Es posible que desee agregar otros parámetros de encabezado para especificar otros parámetros de solicitud HTTP.

De http://code.google.com/p/httplib2/wiki/Examples espero que ayude)

Galletas

Cuando automatiza algo, a menudo necesita “iniciar sesión” para mantener algún tipo de sesión / estado con el servidor. A veces esto se logra con la autenticación basada en formularios y las cookies. Usted publica un formulario en el servidor y responde con una cookie en el encabezado HTTP entrante. Debe devolver esta cookie al servidor en solicitudes posteriores para mantener el estado o mantener una sesión activa.

Este es un ejemplo de cómo lidiar con las cookies al hacer su publicación HTTP.

Primero, importemos los módulos que usaremos:

 importar urllib
 importar httplib2

Ahora, vamos a definir los datos que necesitaremos. En este caso, estamos haciendo una publicación de formulario con 2 campos que representan un nombre de usuario y una contraseña.

 url = 'http://www.example.com/login'   
 body = {'USERNAME': 'foo', 'PASSWORD': 'bar'}
 headers = {'Content-type': 'application / x-www-form-urlencoded'}

Ahora podemos enviar la solicitud HTTP:

 http = httplib2.Http ()
 respuesta, contenido = http.request (url, 'POST', encabezados = encabezados, body = urllib.urlencode (body))

En este punto, nuestra variable de “respuesta” contiene un diccionario de campos de encabezado HTTP que fueron devueltos por el servidor. Si se devolviera una cookie, vería un campo “set-cookie” que contiene el valor de la cookie. Queremos tomar este valor y colocarlo en el encabezado HTTP saliente para nuestras solicitudes posteriores:

 encabezados ['Cookie'] = respuesta ['set-cookie']

Ahora podemos enviar una solicitud utilizando este encabezado y contendrá la cookie, para que el servidor nos pueda reconocer.

Entonces … aquí está todo en un guión. Ingresamos a un sitio y luego hacemos otra solicitud utilizando la cookie que recibimos:

 #! / usr / bin / env python

 importar urllib
 importar httplib2

 http = httplib2.Http ()

 url = 'http://www.example.com/login'   
 body = {'USERNAME': 'foo', 'PASSWORD': 'bar'}
 headers = {'Content-type': 'application / x-www-form-urlencoded'}
 respuesta, contenido = http.request (url, 'POST', encabezados = encabezados, body = urllib.urlencode (body))

 headers = {'Cookie': respuesta ['set-cookie']}

 url = 'http://www.example.com/home'   
 respuesta, contenido = http.request (url, 'GET', encabezados = encabezados)

También puedes usar solo la biblioteca urllib2

  import urllib2 opener = urllib2.build_opener() opener.addheaders.append(('Cookie', 'cookie1=value1;cookie2=value2')) f = opener.open("http://www.example.com/") the_page_html = f.read()