Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » urllib2. вместо странички какая-то фигня [RSS Feed]

#1 Июль 3, 2008 12:03:40

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

вот собственно код…как я понимаю, должен загрузиться 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 Июль 3, 2008 13:57:33

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

hellslade
в чем дело? что я не так написал?
А что вам не нравится? Вот код:
hellslade
<html><body><h1>It works!</h1></body></html>



Офлайн

#3 Июль 3, 2008 16:49:16

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

Daevaorn
что это код мне понятно, но это код не главной страницы сайта… Если не использовать прокси, тогда приходит код главной страницы. меня интересует почему через прокси код другой?



Офлайн

#4 Июль 3, 2008 17:21:49

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

Было бы понятнее, если бы видели вывод в обоих случаях. Потому что “что не так” мне, например, не ясно.

Офлайн

#5 Июль 3, 2008 17:47:26

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

Мне ещё вот это нравится

f = opener.open(url)
f = urllib2.urlopen(url) 



Офлайн

#6 Июль 4, 2008 07:35:16

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

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 (как при варианте без использования прокси). почему так происходит? может дело в том, что нужно к прокси как то обратиться, чтобы он вернул то что мне нужно?



Офлайн

#7 Июль 4, 2008 10:31:34

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

Может прокси кривая?
Через броузер-то она работает?
Тип, порти все такое - правильно записаны?



Отредактировано (Июль 4, 2008 10:32:18)

Офлайн

#8 Июль 4, 2008 10:47:41

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

shiza
да, вроде все правильно. через браузер работает
и здесь в скрипте аутентификацию нормально проходит



Офлайн

#9 Июль 4, 2008 12:27:25

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

ну даже не знаю.
Может прокся только броузер пропускает и ей нужно юзер-агент подсунуть?



Отредактировано (Июль 4, 2008 12:28:17)

Офлайн

#10 Июль 4, 2008 12:29:41

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2. вместо странички какая-то фигня

в документации (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)

Офлайн

  • Начало
  • » Web
  • » urllib2. вместо странички какая-то фигня[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version