Уведомления

Группа в Telegram: @pythonsu

#1 Июль 23, 2013 18:47:41

tibs
От:
Зарегистрирован: 2011-06-30
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Get запрос при помощи urllib2 возвращает 451 HTTP Error

Есть файл по ссылке http://89.111.188.80/x86/600/av/windows/drweb32.lst.lzma, но без нужных заголовков он недоступен. Я посмотрел при помощи Charles нужные заголовки.

GET /x86/600/av/windows/drweb32.lst.lzma HTTP/1.1
Accept: */*
Host: update.drweb.com
X-DrWeb-Validate: 15cef66605200517f9ac02ca2d84e49d
X-DrWeb-KeyNumber: 0015194752
User-Agent: DrWebUpdate-6.00.13.06220 (windows: 5.01.2600)
Pragma: no-cache

Затем повторил эту операцию в Poster (плагин для Firefox), в результате получил бинарный ответ, который я бы хотел сохранить в файл.

Для этого набросал скрипт
#-*- coding: utf8 -*-
import urllib2

opener = urllib2.build_opener()
urllib2.install_opener(opener)

opener.add_headers = [('Accept', '*/*'),
('Host', 'update.drweb.com'),
('X-DrWeb-Validate', '15cef66605200517f9ac02ca2d84e49d'),
('X-DrWeb-KeyNumber', '0015194752'),
('User-Agent', 'DrWebUpdate-6.00.13.06220 (windows: 5.01.2600)'),
('Pragma', 'no-cache')]

opener.open('http://89.111.188.80/x86/600/av/windows/drweb32.lst.lzma').read()

При его выполнение получаю 451 ошибку. Что нужно исправить в коде, чтобы получить нужный файл?



Офлайн

#2 Июль 23, 2013 21:36:14

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Get запрос при помощи urllib2 возвращает 451 HTTP Error

посмотри через wireshark обмен



Офлайн

#3 Июль 25, 2013 16:01:05

tibs
От:
Зарегистрирован: 2011-06-30
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

Get запрос при помощи urllib2 возвращает 451 HTTP Error

py.user.next
посмотри через wireshark обмен
Что мне там нужно искать?



Офлайн

#4 Июль 25, 2013 16:10:40

agalen
От:
Зарегистрирован: 2011-03-23
Сообщения: 185
Репутация: +  17  -
Профиль   Отправить e-mail  

Get запрос при помощи urllib2 возвращает 451 HTTP Error

Попробуй opener.addheaders = … вместо opener.add_headers = ….
Еще другой Host подставится из url.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version