Nano Hash - криптовалюты, майнинг, программирование

Случайный сбой сценария из-за urllib.error.HTTPError: Ошибка HTTP 302

У меня есть странная проблема, которую я пытался "погуглить" в течение нескольких часов.
Я пробовал также решения из похожих тем в стеке, но все равно безрезультатно:

Как установить файлы cookie с помощью Python urlopen?
Обработка перенаправлений rss с помощью Python/urllib2

Итак, дело в том, что я хочу загрузить весь набор статей с какой-либо веб-страницы. Его подссылки с правильным содержанием отличаются всего одним числом, поэтому я перебираю весь диапазон (от 1 до 400 000) и записываю html в файлы. Что здесь важно, так это то, что эта веб-страница нуждается в повторной отправке файлов cookie, чтобы получить правильный URL-адрес, и после лекции Как использовать Python для входа на веб-страницу и получения файлов cookie для последующего использования? Я это сделал.

Но иногда мой скрипт возвращает ошибку:

response = meth(req, response)
Файл "/usr/lib/python3.1/urllib/request.py", строка 468, в http_response
'http', request, response, code, msg, hdrs )
....
Файл "/usr/lib/python3.1/urllib/request.py", строка 553, в http_error_302 self.inf_msg + msg, headers, fp)
urllib.error.HTTPError: Ошибка HTTP 302: HTTP-сервер вернул ошибку перенаправления, которая привела бы к бесконечному циклу.
Последнее сообщение об ошибке 30x:
< strong>Найдено

Эту проблему трудно воспроизвести, потому что сценарий обычно работает нормально, но это происходит случайным образом после нескольких тысяч циклов for.

Вот вывод curl с сервера:
$ curl -I "http://my.url/"
HTTP/1.1 200 OK
Date: Wed, 17 Oct 2012 10:14:13 GMT
Server: Apache/2.2.15 (Oracle)
X-Powered-By: PHP/5.3.3
Set-Cookie: Kuuxk=ae7s3isu2cEshhijte4nb1clk5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=UTF-8

Некоторые люди предлагали использовать механизм или попытаться поймать исключение, но я понятия не имею, как это сделать, другие сказали, что ошибка вызвана неправильной обработкой файлов cookie, но я также пытался получить и отправить файлы cookie «вручную», используя urllib2 и add_header('cookie', cookie) с аналогичным результатом . Интересно, может ли мой цикл for и, возможно, короткий сон привести к сбою сценария несколько раз..
Anwyay - любая помощь приветствуется.

edit:
В случае, если это может сработать - как поймать исключение и попытаться его игнорировать?

редактировать:

Решается простым игнорированием этой ошибки. Нет, все идет нормально.
Я использовал

    try:  
        #here open url  
    except any_HTTPError:  
        pass  

Каждый раз, когда я использую инструкцию url.open.

БЫТЬ ЗАКРЫТЫМ.


  • Что вы подразумеваете под "ЗАКРЫТЬСЯ"? 19.10.2012
  • Затем вы можете ответить на свой вопрос и принять свой ответ. 19.10.2012

Ответы:


1

Позвольте мне предложить другое решение: код состояния HTTP 302 означает Found redirection (см.: https://en.wikipedia.org/wiki/HTTP_302).

Например: HTTP/1.1 302 Found Location: http://www.iana.org/domains/example/

Вы можете взять заголовок Location и попробовать получить этот URL.

Существует 8 кодов статуса перенаправления (301-308). Вы можете использовать заголовок Location, если 301 ‹= код состояния ‹= 308.

17.08.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..