Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #5003 > unrolled thread
| Started by | Bob Fnord <bob@example.com> |
|---|---|
| First post | 2011-05-09 20:20 +0200 |
| Last post | 2011-05-12 17:51 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to comp.lang.python
can't get urllib2 or httplib to work with tor & privoxy Bob Fnord <bob@example.com> - 2011-05-09 20:20 +0200
Re: can't get urllib2 or httplib to work with tor & privoxy Chris Angelico <rosuav@gmail.com> - 2011-05-10 20:33 +1000
Re: can't get urllib2 or httplib to work with tor & privoxy Bob Fnord <bob@example.com> - 2011-05-12 17:51 +0200
| From | Bob Fnord <bob@example.com> |
|---|---|
| Date | 2011-05-09 20:20 +0200 |
| Subject | can't get urllib2 or httplib to work with tor & privoxy |
| Message-ID | <d5e2985d74a2117de3fd9ab09c99b799@msgid.frell.theremailer.net> |
Here's my python code:
import httplib, urllib2
proxy_handler = {'http' : 'localhost:8118',
'https' : 'localhost:8118'}
def connect_u2(url = 'http://ipid.shat.net/iponly/'):,
proxied = urllib2.ProxyHandler(proxy_handler)
opnr = urllib2.build_opener(proxied)
opnr.addheaders = [('User-agent', agent)]
rsp = opnr.open(url)
page = rsp.read()
return page
def connect_h(url = 'http://ipid.shat.net/iponly/'):
cnn = httplib.HTTPConnection('127.0.0.1', 8118)
cnn.connect()
cnn.request('GET', url)
rsp = cnn.getresponse()
stderr.write('%u %s\n' % (rsp.status, rsp.reason))
page = rsp.read(500)
cnn.close()
return page
Both methods give me a 503 error, even though this
export http_proxy='http://localhost:8118/'
lynx -dump 'http://ipid.shat.net/iponly/'
works in bash and prints out the IP of a tor exit.
What am I doing wrong in python? (I tried both 'localhost:8118' and
'http://localhost:8118/' in the proxy_handler dict.)
[toc] | [next] | [standalone]
| From | Chris Angelico <rosuav@gmail.com> |
|---|---|
| Date | 2011-05-10 20:33 +1000 |
| Message-ID | <mailman.1378.1305023595.9059.python-list@python.org> |
| In reply to | #5003 |
On Tue, May 10, 2011 at 4:20 AM, Bob Fnord <bob@example.com> wrote: > Both methods give me a 503 error... As a networking geek, my first thought would be to fire up a tiny little "snoop server" and see what, exactly, the two methods are doing. (Ignore the HTTPS options as they're more complicated to snoop on; you're almost certainly going to see exactly the same on the HTTP.) A snoop server is simply an HTTP server that dumps its requests to stdout or a file, utterly raw. You can write one in Python fairly easily, or use another program; if I'm working on Windows, I'll generally use my own RosMud MUD client, but you'll be able to whip up a cross-platform one in half a page of code in any decent high level language. I recommend you work at the sockets level, rather than using an HTTP library, unless you have one that can emit the entire request, exactly as it came from the client. Once you've found the difference(s) between Lynx and your script, you can see what's causing the 503 (Service Unavailable) error; it may be that you need to authenticate with the proxy. Chris Angelico
[toc] | [prev] | [next] | [standalone]
| From | Bob Fnord <bob@example.com> |
|---|---|
| Date | 2011-05-12 17:51 +0200 |
| Message-ID | <44ec92ef1af181bd3839228f88c1b78d@msgid.frell.theremailer.net> |
| In reply to | #5064 |
Chris Angelico <rosuav@gmail.com> wrote: > On Tue, May 10, 2011 at 4:20 AM, Bob Fnord <bob@example.com> wrote: > > Both methods give me a 503 error... > > As a networking geek, my first thought would be to fire up a tiny > little "snoop server" and see what, exactly, the two methods are > doing. (Ignore the HTTPS options as they're more complicated to snoop > on; you're almost certainly going to see exactly the same on the > HTTP.) > > A snoop server is simply an HTTP server that dumps its requests to > stdout or a file, utterly raw. You can write one in Python fairly > easily, or use another program; if I'm working on Windows, I'll > generally use my own RosMud MUD client, but you'll be able to whip up > a cross-platform one in half a page of code in any decent high level > language. I recommend you work at the sockets level, rather than using > an HTTP library, unless you have one that can emit the entire request, > exactly as it came from the client. > > Once you've found the difference(s) between Lynx and your script, you > can see what's causing the 503 (Service Unavailable) error; it may be > that you need to authenticate with the proxy. Duh, I was doing something else stupid. Thanks but never mind!
[toc] | [prev] | [standalone]
Back to top | Article view | comp.lang.python
csiph-web