Форум сайта python.su
вот собственно код…как я понимаю, должен загрузиться 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>
Офлайн
hellsladeА что вам не нравится? Вот код:
в чем дело? что я не так написал?
hellslade
<html><body><h1>It works!</h1></body></html>
Офлайн
Daevaorn
что это код мне понятно, но это код не главной страницы сайта… Если не использовать прокси, тогда приходит код главной страницы. меня интересует почему через прокси код другой?
Офлайн
Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.
Офлайн
Мне ещё вот это нравится
f = opener.open(url) f = urllib2.urlopen(url)
Офлайн
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()
Офлайн
Может прокси кривая?
Через броузер-то она работает?
Тип, порти все такое - правильно записаны?
Отредактировано (Июль 4, 2008 10:32:18)
Офлайн
shiza
да, вроде все правильно. через браузер работает
и здесь в скрипте аутентификацию нормально проходит
Офлайн
ну даже не знаю.
Может прокся только броузер пропускает и ей нужно юзер-агент подсунуть?
Отредактировано (Июль 4, 2008 12:28:17)
Офлайн
в документации (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)
Офлайн