Форум сайта python.su
							
  0  
								
								вот собственно код…как я понимаю, должен загрузиться html код страницы, но…
# -*- coding:cp1251 -*- import urllib2 proxy_info = { 'user' : 'login', 'pass' : 'passwd', 'host' : "192.168.20.1", 'port' : 80 } url = 'http://www.mail.ru/' proxy_support = urllib2.ProxyHandler({"http" : "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info}) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) f = opener.open(url) f = urllib2.urlopen(url) print f.headers print '---------- END HEADERS ----------\n---------- BODY ----------' print f.read()
Date: Thu, 03 Jul 2008 08:58:00 GMT Server: Apache/2.2.9 (FreeBSD) DAV/2 PHP/4.4.8 with Suhosin-Patch mod_perl/2.0.4 Perl/v5.8.8 Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT ETag: "e32e2a-2c-3e9564c23b600" Accept-Ranges: bytes Content-Length: 44 Connection: close Content-Type: text/html ---------- END HEADERS ---------- ---------- BODY ---------- <html><body><h1>It works!</h1></body></html>
Офлайн
							
  2  
								
								hellsladeА что вам не нравится? Вот код:
в чем дело? что я не так написал?
hellslade
<html><body><h1>It works!</h1></body></html>
Офлайн
							
  0  
								
								Daevaorn
что это код мне понятно, но это код не главной страницы сайта… Если не использовать прокси, тогда приходит код главной страницы. меня интересует почему через прокси код другой?
Офлайн
							
  1  
								
								Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.
Офлайн
							
  2  
								
								Мне ещё вот это нравится
f = opener.open(url) f = urllib2.urlopen(url)
Офлайн
							
  0  
								
								Daevaornэто да :) просто пробовал по-разному, потом забыл закомментить
Мне ещё вот это нравится
Код: python:
f = opener.open(url)
f = urllib2.urlopen(url)
Ferromanвариант с прокси собственно вот: “<html><body><h1>It works!</h1></body></html>”
Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.
# -*- coding:cp1251 -*- import urllib2 proxy_info = { 'user' : 'login', 'pass' : 'passwd', 'host' : "192.168.20.1", 'port' : 80 } url = 'http://mail.ru/' proxy_support = urllib2.ProxyHandler({"http" : "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info}) opener = urllib2.build_opener(proxy_support, urllib2.HTTPHandler) urllib2.install_opener(opener) f = opener.open(url) print f.headers print '---------- END HEADERS ----------\n---------- BODY ----------' print f.read()
Офлайн
							
  0  
								
								Может прокси кривая?
Через броузер-то она работает?
Тип, порти все такое - правильно записаны?
Отредактировано (Июль 4, 2008 10:32:18)
Офлайн
							
  0  
								
								shiza
да, вроде все правильно. через браузер работает
и здесь в скрипте аутентификацию нормально проходит
Офлайн
							
  0  
								
								ну даже не знаю.
Может прокся только броузер пропускает и ей нужно юзер-агент подсунуть?
Отредактировано (Июль 4, 2008 12:28:17)
Офлайн
							
  0  
								
								в документации (http://docs.python.org/lib/urllib2-examples.html) написано так делать:
proxy_handler = urllib2.ProxyHandler({'http': 'http://www.example.com:3128/'})
proxy_auth_handler = urllib2.HTTPBasicAuthHandler()
proxy_auth_handler.add_password('realm', 'host', 'username', 'password')
opener = build_opener(proxy_handler, proxy_auth_handler)
# This time, rather than install the OpenerDirector, we use it directly:
opener.open('http://www.example.com/login.html')Отредактировано (Июль 4, 2008 12:30:18)
Офлайн