Запросы Python HTTP Redirect запрещены - PullRequest
1 голос
/ 07 октября 2010

Я пытаюсь очистить веб-сайт, на котором перенаправлен URL-адрес, однако программным путем я получаю код ошибки 403 (запрещено).Я могу разместить URL в браузере, и браузер будет правильно следовать URL-адресу, хотя ...

, чтобы показать простой пример, к которому я пытаюсь перейти: http://en.wikipedia.org/w/index.php?title=Mike_tyson

I 'Я пробовал urllib2 и механизировать, но оба не работают.Я довольно новичок в веб-программировании и мне было интересно, есть ли какие-то другие приемы, которые мне нужно сделать, чтобы следовать редиректу!

Спасибо!

РЕДАКТИРОВАТЬ

Хорошо, так что это действительно запутано.Первоначально я искал альтернативные методы, потому что я пытался очистить Mp3.Мне удалось успешно скачать mp3, но все было искажено.

Оказывается, это было как-то связано с тем, что я загружал его в Windows или в моей текущей версии Python.Я протестировал код на своем дистрибутиве Ubuntu, и mp3-файл загрузился совершенно нормально ....

Так что я просто использовал простой urllib2.openurl, и он отлично работал!

Интересно, почему загрузка в Windowsизуродовал mp3?

Ответы [ 2 ]

3 голосов
/ 07 октября 2010

Попробуйте изменить флаг mechanize, чтобы он не учитывал robots.txt.Кроме того, рассмотрите возможность изменения HTTP-заголовка User-Agent:

>>> import mechanize
>>> br = mechanize.Browser()
>>> br.set_handle_robots(False)
>>> br.addheaders = [('User-Agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)')]

Веб-серверы теперь будут относиться к вам так, как будто вы работаете с MS Internet Explorer 6, а не с ботом.Даже если они ограничат вас robots.txt, ваш бот продолжит работать, пока не будет заблокирован.

>>> br.open('http://en.wikipedia.org/w/index.php?title=Mike_tyson')
<response_seek_wrapper at 0x... whose wrapped object = <closeable_response at 0x... whose fp = <socket._fileobject object at 0x...>>> #doctest: +ELLIPSIS
0 голосов
/ 07 октября 2010

Хорошо, так что это действительно запутано. Первоначально я искал альтернативные методы, потому что я пытался очистить Mp3. Мне удалось успешно скачать mp3, но все было искажено.

Оказывается, это было как-то связано с тем, что я загружал его в Windows или в моей текущей версии Python. Я проверил код на моем дистрибутиве Ubuntu, и mp3-файл загрузился отлично ...

Так что я просто использовал простой urllib2.openurl, и он работал отлично!

Интересно, почему при загрузке в Windows искалечены mp3?

...