Найти - Пользователи
Полная версия: urllib2 urllib2.urlopen как получить страницу сайта
Начало » Network » urllib2 urllib2.urlopen как получить страницу сайта
1
qman
Всем привет,
есть такой код

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
slivlen
doc.read()
qman
спасибо, все оказалось проще

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. заранее благодарен
slivlen
proxies слева - это название параметра функции urlopen, его область видимости - это тело ф-ции urlopen, справа - это название переменной, она в данном случае глобальная. А вообще учи матчасть :)
P.S.
qman
proxies = proxies={'http': 'http://127.0.0.1:5865'}
А это еще зачем? Одного присваивания вполне достаточно.
qman
slivlen
qman написал:

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

А это еще зачем? Одного присваивания вполне достаточно.
я код это взял из книги Сузи Роман Авриевич.
меня такой код тоже смутил, поэтому и задал вопрос
slivlen
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()
В винде настройки прокси берутся из реестра и их каждый раз задавать вообще не требуется.
qman
slivlen
http://www.intuit.ru/department/pl/python/9/python_9.html - в электронной версии книги такого нет.
у меня pdf файл, возможно не самая свежая версия…
slivlen
[alex@slivlen ~]$ export http_proxy='http://proxy:3128'
у меня в pdf сказано что данный способ под виндой работать не будет, к сожалению для меня.
мне приходится юзать винду. с реестром нет желания связываться
bialix
с реестром связываться не надо, интернет-либа сама там возьмет все что нужно, без вашего согласия.
Настройки прокси берутся из настроек Internet Explorer.

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

SET HTTP_PROXY="http://proxy:3128"
qman
bialix
а переменные окружения под виндой тоже существуют и стыдно не знать как их устанавливать.
SET HTTP_PROXY="http://proxy:3128"
в моей книге почему то сказано, что python не читает переменную HTTP_PROXY под виндой . я не успел еще проверить это.
Андрей Светлов
Врут.
urllib.getproxies_environment вызывается на ВСЕХ платформах.
И из urllib2 вызывается она же.
Так что - из исходников прямо следует.
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