urllib2.urlopen будет висеть навсегда, несмотря на таймаут

Надеюсь, это довольно простой вопрос, но это сводит меня с ума. Я использую Python 2.7.3 при установке сервера ubuntu 12.10 из коробки. Я продолжал масштабировать проблему, пока не добрался до этого фрагмента:

import urllib2 x=urllib2.urlopen("http://casacinema.eu/movie-film-Matrix+trilogy+123+streaming-6165.html", timeout=5) 

Он просто вешает навсегда, никогда не переходит в тайм-аут. Я, очевидно, что-то делаю неправильно. Кто-нибудь может помочь? Спасибо Вам большое!

Matteo

2 Solutions collect form web for “urllib2.urlopen будет висеть навсегда, несмотря на таймаут”

Похоже, вы испытываете проблему с прокси. Вот подробное объяснение того, как это решить : попытка доступа к Интернету с помощью urllib2 в Python .

Я выполнил ваш код на моем ubuntu с помощью python 2.7.3 и не видел никаких ошибок.

Кроме того, рассмотрите возможность использования запросов :

 import requests response = requests.get("http://casacinema.eu/movie-film-Matrix+trilogy+123+streaming-6165.html", timeout=5) print response.status_code 

Смотрите также:

  • Прокси с модулем «Запросы» Python

Оригинальный плакат заявил, что они не понимают, почему он будет висеть, но они также хотели, чтобы urllib.request.urlopen от зависания. Я не могу сказать, как держать его от зависания, но если это помогает кому-то, то это может повесить.

Клиент Python-urllib/3.6 придирчив. Он ожидает, например, что сервер вернет HTTP/1.1 200 OK не HTTP 200 OK . Он также ожидает, что сервер закроет соединение при его отправке connection: close в заголовках.

Лучший способ диагностировать это – получить исходный результат ответа сервера и сравнить его с другим ответом сервера, который, как вы знаете, работает. Затем, если вы должны создать сервер и обработать ответ, чтобы точно определить, какая разница. Возможно, это может привести хотя бы к изменению на сервере и позволит ему не зависать.

  • Ошибка Python Urllib2 SSL
  • Метод «post» для прямой связи с сервером
  • Использование cookie сеанса из селена в urllib2
  • Python: сохранение большой веб-страницы в файл
  • Поддержка https proxy в библиотеке запросов python
  • Необходимо установить urllib2 для Python 3.5.1
  • Urlopen Python
  • Я загружаю файл, используя Python urllib2. Как проверить размер файла?
  • Python - лучший язык программирования в мире.