Estoy golpeando mi cabeza contra la pared con este. He estado probando cada ejemplo, leyendo hasta el último bit que puedo encontrar en línea sobre la autorización http básica con urllib2, pero no puedo entender qué está causando mi error específico.urllib2 autenticación básica oddites
Además de la frustración, el código funciona para una página, pero no para otra. iniciando sesión en www.misitio.com/adm va absolutamente sin problemas. No autentica ningún problema. Sin embargo, si cambio de la dirección a 'http://mysite.com/adm/items.php?n=201105 & c = 200' que recibo este error:
<h4 align="center" class="teal">Add/Edit Items</h4>
<p><strong>Client:</strong> </p><p><strong>Event:</strong> </p><p class="error">Not enough information to complete this task</p>
<p class="error">This is a fatal error so I am exiting now.</p>
búsqueda Google ha llevado a cero en la información este error.
La adm es una página de conjunto de marcos, no estoy seguro si eso es relevante en absoluto.
Aquí está el código actual:
import urllib2, urllib
import sys
import re
import base64
from urlparse import urlparse
theurl = 'http://xxxxxmedia.com/adm/items.php?n=201105&c=200'
username = 'XXXX'
password = 'XXXX'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl,username,password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
pagehandle = urllib2.urlopen(theurl)
url = 'http://xxxxxxxmedia.com/adm/items.php?n=201105&c=200'
values = {'AvAudioCD': 1,
'AvAudioCDDiscount': 00, 'AvAudioCDPrice': 50,
'ProductName': 'python test', 'frmSubmit': 'Submit' }
#opener2 = urllib2.build_opener(urllib2.HTTPCookieProcessor())
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
Ésta es sólo una de las muchas versiones que he probado. He seguido todos los ejemplos de Urllib2 Missing Manual pero aún recibo el mismo error.
¿Alguien puede señalar lo que estoy haciendo mal?
Parece que su código funciona, pero no el sitio al que se está conectando. ¿Funciona en un navegador? Como la página contiene marcos, ¿ha mirado su origen? –
Sí, funciona en el navegador. He revisado su fuente con Firebug. El sitio de administración va a la página html con este código de estilo:
– Zack@jd Sí, funciona en el navegador. He revisado su fuente con Firebug. No estoy del todo seguro de lo que estoy buscando. Me di cuenta de que puedo autenticar con Python en todas las páginas, excepto las que tienen parámetros en la dirección IE. ..dia.com/adm/items.php? n = 201105 & c = 200 '. – Zack