Я ударяю головой о стену с этим. Я пробовал каждый пример, читая каждый последний бит, который я могу найти в Интернете, об основной авторизации http с urllib2, но я не могу понять, что вызывает мою конкретную ошибку.urllib2 basic authentication oddites
Добавление к разочарованию заключается в том, что код работает для одной страницы, но не для другого. Вход в www.mysite.com/adm идет абсолютно гладко. Он не аутентифицирует проблему. Тем не менее, если я изменить адрес для «http://mysite.com/adm/items.php?n=201105 & с = 200» Я получаю эту ошибку:
<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>
Поиск Google привела к нулевой информации о эта ошибка.
Администратор - это страница с рамкой, я не уверен, что это актуально вообще.
Вот текущий код:
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)
Это только один из многих вариантов, которые я пробовал. Я следовал за каждым примером из Urllib2 Missing Manual, но все же получал ту же ошибку.
Может ли кто-нибудь указать на то, что я делаю неправильно?
Похоже, что ваш код работает, но не сайт, к которому вы подключаетесь. Работает ли он в браузере? Поскольку страница содержит фреймы, посмотрели ли вы на ее источник? –
Да, это работает в браузере. Я проверил его источник с firebug. Сайт администратора отправляется на страницу html с этим кодом стиля:
– Zack@jd Да, он работает в браузере. Я проверил его источник с firebug. Я не совсем уверен, что искать. Я заметил, что я могу аутентифицироваться с помощью python на каждой странице, кроме тех, которые имеют параметры в адресе IE. ..dia.com/ADM/items.php? п = 201105 & с = 200' . – Zack