Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » urllib2 urllib2.urlopen как получить страницу сайта [RSS Feed]

#1 Июль 18, 2007 08:13:15

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

urllib2 urllib2.urlopen как получить страницу сайта

Всем привет,
есть такой код

import urllib2
_my_proxy_info = {
'user' : ‘',
’pass' : ‘',
’host' : “127.0.0.1”,
'port' : 5865
}
_my_proxy_support = urllib2.ProxyHandler({“http” : \
"http://%(user)s:%(pass)s@%(host)s:%(port)d“ % _my_proxy_info})
_my_opener = urllib2.build_opener(_my_proxy_support, ”“)
urllib2.install_opener(_my_opener)
doc = urllib2.urlopen(”http://www.mail.ru")
print doc

ответ получаю
<addinfourl at 13572936 whose fp = <socket._fileobject object at 0x00CE57A0>>

как получить чистый html код.
P.S. локально запущен ntlmaps



Офлайн

#2 Июль 18, 2007 09:06:26

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2 urllib2.urlopen как получить страницу сайта

doc.read()



Офлайн

#3 Июль 18, 2007 09:54:14

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

urllib2 urllib2.urlopen как получить страницу сайта

спасибо, все оказалось проще

from urllib import urlopen
proxies = proxies={'http': 'http://127.0.0.1:5865'}
doc = urlopen("http://www.mail.ru“, proxies=proxies ).read( )
print doc

file_object = open('thefile.txt', ‘w’)
file_object.write(doc)
file_object.close( )

только кто нибудь может объяснить зачем , что значит такая вставка кода?
proxies = proxies
в строке
doc = urlopen(”http://www.mail.ru", proxies=proxies ).read( )
proxies справа от = это переменная?
а что тогда proxies слева от = ?
P.S. заранее благодарен



Офлайн

#4 Июль 18, 2007 12:21:29

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2 urllib2.urlopen как получить страницу сайта

proxies слева - это название параметра функции urlopen, его область видимости - это тело ф-ции urlopen, справа - это название переменной, она в данном случае глобальная. А вообще учи матчасть :)
P.S.

qman
proxies = proxies={'http': 'http://127.0.0.1:5865'}
А это еще зачем? Одного присваивания вполне достаточно.



Офлайн

#5 Июль 18, 2007 13:08:52

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

urllib2 urllib2.urlopen как получить страницу сайта

slivlen
qman написал:

proxies = proxies={'http': 'http://127.0.0.1:5865'}

А это еще зачем? Одного присваивания вполне достаточно.
я код это взял из книги Сузи Роман Авриевич.
меня такой код тоже смутил, поэтому и задал вопрос



Офлайн

#6 Июль 18, 2007 13:27:42

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

urllib2 urllib2.urlopen как получить страницу сайта

qman
я код это взял из книги Сузи Роман Авриевич.
меня такой код тоже смутил, поэтому и задал вопрос
http://www.intuit.ru/department/pl/python/9/python_9.html - в электронной версии книги такого нет.
ИМХО есть более простой способ указать прокси - через переменные окружения.
[alex@slivlen ~]$ export http_proxy='http://proxy:3128'
[alex@slivlen ~]$ python
Python 2.4.4 (#1, Oct 23 2006, 13:58:00) 
[GCC 4.1.1 20061011 (Red Hat 4.1.1-30)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2
>>> urllib2.urlopen('http://ya.ru').read()
В винде настройки прокси берутся из реестра и их каждый раз задавать вообще не требуется.



Офлайн

#7 Июль 18, 2007 19:48:06

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

urllib2 urllib2.urlopen как получить страницу сайта

slivlen
http://www.intuit.ru/department/pl/python/9/python_9.html - в электронной версии книги такого нет.
у меня pdf файл, возможно не самая свежая версия…
slivlen
[alex@slivlen ~]$ export http_proxy='http://proxy:3128'
у меня в pdf сказано что данный способ под виндой работать не будет, к сожалению для меня.
мне приходится юзать винду. с реестром нет желания связываться



Отредактировано (Июль 18, 2007 19:49:13)

Офлайн

#8 Июль 19, 2007 08:50:53

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

urllib2 urllib2.urlopen как получить страницу сайта

с реестром связываться не надо, интернет-либа сама там возьмет все что нужно, без вашего согласия.
Настройки прокси берутся из настроек Internet Explorer.

а переменные окружения под виндой тоже существуют и стыдно не знать как их устанавливать.

SET HTTP_PROXY="http://proxy:3128"



Офлайн

#9 Июль 19, 2007 12:14:22

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

urllib2 urllib2.urlopen как получить страницу сайта

bialix
а переменные окружения под виндой тоже существуют и стыдно не знать как их устанавливать.
SET HTTP_PROXY="http://proxy:3128"
в моей книге почему то сказано, что python не читает переменную HTTP_PROXY под виндой . я не успел еще проверить это.



Отредактировано (Июль 19, 2007 12:16:01)

Офлайн

#10 Июль 19, 2007 14:34:46

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

urllib2 urllib2.urlopen как получить страницу сайта

Врут.
urllib.getproxies_environment вызывается на ВСЕХ платформах.
И из urllib2 вызывается она же.
Так что - из исходников прямо следует.



Офлайн

  • Начало
  • » Network
  • » urllib2 urllib2.urlopen как получить страницу сайта[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version