Найти - Пользователи
Полная версия: urllib2. вместо странички какая-то фигня
Начало » Web » urllib2. вместо странички какая-то фигня
1 2
hellslade
вот собственно код…как я понимаю, должен загрузиться 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>
hellslade
Daevaorn
что это код мне понятно, но это код не главной страницы сайта… Если не использовать прокси, тогда приходит код главной страницы. меня интересует почему через прокси код другой?
Ferroman
Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.
Александр Кошелев
Мне ещё вот это нравится
f = opener.open(url)
f = urllib2.urlopen(url) 
hellslade
Daevaorn
Мне ещё вот это нравится
Код: python:
f = opener.open(url)
f = urllib2.urlopen(url)
это да :) просто пробовал по-разному, потом забыл закомментить

Ferroman
Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.
вариант с прокси собственно вот: “<html><body><h1>It works!</h1></body></html>”
а без прокси это огромный html код главной страницы сайта mail.ru
вот мой код (еще раз :)
# -*- 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()
и собственно при запуске f.read() возвращает это - “<html><body><h1>It works!</h1></body></html>”, а должен возвращать html главной страницы mail.ru (как при варианте без использования прокси). почему так происходит? может дело в том, что нужно к прокси как то обратиться, чтобы он вернул то что мне нужно?
shiza
Может прокси кривая?
Через броузер-то она работает?
Тип, порти все такое - правильно записаны?
hellslade
shiza
да, вроде все правильно. через браузер работает
и здесь в скрипте аутентификацию нормально проходит
shiza
ну даже не знаю.
Может прокся только броузер пропускает и ей нужно юзер-агент подсунуть?
shiza
в документации (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')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB