Eu estou usando biblioteca urllib2 para o meu código, eu estou usando um monte de (urlopen) EDIT: loadurl
Eu tenho um problema na minha rede, quando eu estou navegando sites, às vezes meu navegador fica preso em "Conectando" a um determinado site e às vezes meu navegador retorna um tempo limite
Minha pergunta é se eu usar o urllib2 no meu código, ele pode ter tempo limite ao tentar conectar-se por muito tempo a um determinado site ou o código ficará preso nessa linha.
Eu sei que o urllib2 pode lidar com tempos limite sem especificá-lo no código, mas pode se aplicar a esse tipo de situação?
Obrigado pelo seu tempo
EDITAR:
def checker(self)
try:
html = self.loadurl("MY URL HERE")
if self.ip_ != html:
(...)
except Exeption, error:
html = "bad"
Respostas:
1 para resposta № 1da minha pequena pesquisa, o urllib2.urlopen()
função é adicionada no python 2.6
então, o problema de tempo limite deve ser resolvido enviando tempo limite personalizado para o urllib2.urlopen
função. o código deve ficar assim;
response = urllib2.urlopen( "---insert url here---", None, your-timeout-value)
a your-timeout-value
parâmetro é um parâmetro opcional que define o tempo limite em segundos.
EDIT: De acordo com o seu comentário, eu tenho que você não precisa do código para esperar muito tempo, então você deve ter o seguinte código para não ficar preso;
import socket
import urllib2
socket.setdefaulttimeout(10)
10
pode ser alterado de acordo com uma fórmula matemática relacionada à velocidade de conexão e ao tempo de carregamento do site.