Как предотвратить перенаправление 301 кода на сайт? - PullRequest
0 голосов
/ 09 ноября 2011

Я пытаюсь подключиться к веб-сайтам с Python и получить коды состояния HTTP.Поскольку ответы на этот другой мой вопрос предполагают, причина, по которой код состояния HTTP для веб-сайтов, таких как google.com, равен 301 или 302 (постоянно перемещен), заключается в том, что эти серверы перенаправляют.Тем не менее, я хотел бы иметь возможность подключиться к ним таким образом, чтобы я получил естественные 200 (ОК) от них.Вот мой текущий код:

import httplib

conn = httplib.HTTPConnection("google.com", 80)
conn.request("GET","/")
r  = conn.getresponse()
print r.status, r.reason
conn.close()

Что мне нужно изменить / добавить, чтобы добиться этого?Я слышал, что библиотека pycurl может помочь мне в этом, но поиск в Google пока не принес никаких полезных результатов.Я новичок в этой области, поэтому извините, если вопрос тривиален.

1 Ответ

2 голосов
/ 09 ноября 2011

Я предполагаю, что вы хотите, чтобы ваш код следовал за 301/302 до конечного URL, который возвращает 200?

Если это так, вы можете попробовать использовать urllib, или, что еще лучше, использовать requests, который вы можете установить с помощью pip.

И urllib, и более надежно requests должны следовать 301 и 302 и дать вам последнюю страницу, которая возвращает 200.

Информацию о модуле запросов можно найти здесь: http://pypi.python.org/pypi/requests/

Надеюсь, это поможет.

...