URL-адрес: https://boathistoryreport.com/directory/manufacturers/
Я могу использовать wget для получения полного исходного кода, который появится в браузере. Когда я использую curl, я получаю другой код, который указывает редирект. Тем не менее, перенаправление должно быть на тот же URL-адрес, поскольку он не изменяется в панели браузера, а также ссылка, указанная в ответе curl, такая же, как и исходная запрошенная.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to target URL: <a href="https://boathistoryreport.com/directory/manufacturers/">https://boathistoryreport.com/directory/manufacturers/</a>
Кроме того, когда я пытаюсь получить исходный код страницы с помощью urllib в Python 3, я получаю ошибку перенаправления 308, и данные о странице недоступны. Вот код Python:
req = urllib.request.Request(
url,
data=None,
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
}
)
context = ssl._create_unverified_context()
try:
page_data = urllib.request.urlopen(req, context=context).read()
return page_data
except urllib.error.HTTPError as e:
# Return code error (e.g. 404, 501, ...)
print('HTTPError: {}'.format(e.code))
return False
except urllib.error.URLError as e:
# Not an HTTP-specific error (e.g. connection refused)
print('URLError: {}'.format(e.reason))
return False
Мои вопросы: 1) Как страница может перенаправить на себя, не вызывая цикл? Или, альтернативно, что здесь происходит? 2) Как я могу получить этот ресурс с Python 3? Я считаю, что должен использовать SSL, так как без него страница недоступна. Я бы предпочел использовать urllib для получения страницы.