Proxy authentication required

python w.g.sneddon at gmail.com
Mon Mar 21 21:04:13 EDT 2011


On Mar 21, 7:02 pm, Chris Rebert <c... at rebertia.com> wrote:
> On Mon, Mar 21, 2011 at 2:38 AM, gervaz <ger... at gmail.com> wrote:
> > Hi all,
> > I've got to download some web pages but I'm behind a proxy. So far
> > this is what I've used without any successful result receiving the
> > error: "urllib.error.HTTPError: HTTP Error 407: Proxy Authentication
> > Required ( The ISA Server requires auth
> > orization to fulfill the request. Access to the Web Proxy filter is
> > denied.  )":
>
> > hc = urllib.request.HTTPCookieProcessor()
> > hp = urllib.request.ProxyHandler({"http": "10.242.38.251:80",
> > "username": "domain\username", "password": "password"})
>
> Remember that backslash is used for string escapes in Python; so that
> should be "domain\\username" in order to get 1 literal backslash. I
> suspect this is the cause of your proxy authentication problem.
>
> > opener = urllib.request.build_opener(hc, hp)
>
> Are you sure that's the right order for the handlers? (I don't know myself.)
>
> > urllib.request.urlopen("http://www.google.it/")
>
> Cheers,
> Chris
> --
> Windows, Y U use backslash for stuff!?http://blog.rebertia.com

did this a long time ago when behind a corporate proxy server worked
then might be a start for you
I am fuzzy on the details.

import httplib
import base64
import getpass
def getWebPage(userName='YourUserName',httpPage='http://
weather.noaa.gov/weather/current/KRIC.html',outFilePath=None):
    # 1. connect to the proxy
    h1 = httplib.HTTP("proxyconf",)

    # 2. give the absolute URL in the request
    h1.putrequest('GET', 'http://weather.noaa.gov/weather/current/
KRIC.html')

    h1.putheader('Accept', 'text/html')
    h1.putheader('Accept', 'text/plain')
    password = getpass.getpass()
    # 3. set the header with a base64 encoding of user-id:passwd
    userString = "%s:%s" % (userName,password)
    auth = "Basic " + base64.encodestring(userString)
    h1.putheader('Proxy-Authorization', auth)
    h1.endheaders()

    # 4. get the page
    errcode, errmsg, headers = h1.getreply()

    print errcode
    print errmsg
    print headers

    f=h1.getfile()
    if(not outFilePath):
        for line in f.readlines():
            print line
    else:
        try:
            outFile = open(outFilePath,'w')
            # yada yaha



More information about the Python-list mailing list