Форум сайта python.su
Всем привет!
если со страницы
http://www.gismeteo.ru/city/legacy/?city=4478&shift=2
открыть версию для печати
http://www.gismeteo.ru/ajax/print/4478/short/2
то все ок.
но если wget ом скачать
http://www.gismeteo.ru/ajax/print/4478/short/2
то получаю
Sorry, print page aviable only from gismeteo web-site!
Подскажите можно с помощью питона как то попробовать обойти такую проверку?
Можно ли в urllib2 указать адрес откуда пришли?
Или посоветуйте другой путь.
Всем спасибо
Офлайн
Я ща точно не скажу, но однозначно видел в википедии, что можно в заголовке HTTP указать откуда был переход (т.е. с gismeteo web-site в данном случае). Можно покопать в этом направлении
Офлайн
эээ… API у gismeteo.ru не хватает?
Отдает погоду в XML, сам этим пользуюсь…
Офлайн
qmanЭто называется Referer и его надо добавлять в заголовок запроса. Смотрите в сторону urllib2.build_opener, addheaders.
Можно ли в urllib2 указать адрес откуда пришли?
Офлайн
dartNNNда, кстати посвятите как там на третьем питоне работается?
И зачем я дурак на 3-ем питоне пишу?
Офлайн
igor.kaistспасибо за наводку на XML, но я раньше wget качал еще картинки! А в XML не нашел ссылок на картинки! Или я чего то не до понимаю.
эээ… API у gismeteo.ru не хватает?
Отдает погоду в XML, сам этим пользуюсь…
Офлайн
qmanну обрабатывайте xml и делайте с данными все что хочется, можете и сами эти картинки нарисовать (с помощью PIL, например).
А в XML не нашел ссылок на картинки! Или я чего то не до понимаю.
Офлайн
qmanНу как сказать, многие вещи очень интересны и удобны.
да, кстати посвятите как там на третьем питоне работается?
Офлайн
Для тех кому интересно
import urllib2
proxy_support = urllib2.ProxyHandler({'http' : 'http://proxy:5865/'})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('Referer', 'http://www.gismeteo.ru/')]
Отредактировано (Март 29, 2010 09:05:54)
Офлайн
Или вот так:
import urllib2
req = urllib2.Request("http://www.gismeteo.ru/ajax/print/4478/short/2")
req.add_header("Referer", "http://www.gismeteo.ru/")
source = urllib2.urlopen(req).read()
Отредактировано (Март 29, 2010 13:06:22)
Офлайн