2017-09-21 1 views
0

im certains programmes ecriture web mise au rebut, mais quand mon URL est * .doc ou * .jpg, etc mes demandes actuelles ne délai d'attente et non pas passe à l'URL suivantePython 3 demande comment briser session et continuer

J'ai ceci:

html = requests.get(http//:www.someweb.doc, verify=False, timeout=5) 

pouvez-vous me aider sur la façon d'obtenir() l'url mais certains pour comme 10 secondes, puis passer à côté d'un ??

j'ai aussi essayé avec eventled:

importation eventlet eventlet.monkey_patch()

with eventlet.Timeout(10): 
    html = requests.get(enlance, verify=False) 

et moi avons reçu un tas d'erreurs:

retraçage (appel le plus récent en dernier): Fichier "emailCrawler.py", ligne 69, dans getLinks ("") Fichier "emailCrawler.py", ligne 64, dans getLinks getLinks (page) Fichier "emailCrawler.py", ligne 64, dans getLinks getLinks (page) Fichier "emailCrawler.py", ligne 64, dans getLinks getLinks (page) Fichier "emailCrawler.py", ligne 64, dans getLinks getLinks (page) Fichier "emailCrawler.py", ligne 64, dans getLinks getLinks (page) Fichier "emailCrawler.py", ligne 25, dans getLinks html = requests.get (enlance, verify = False) Fichier " /home/ccnp/environments/my_env/lib/python3.5/site-packages/requests/api.py ", ligne 72, dans get demande de retour ('get', url, params = params, ** kwargs) Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/requests/api.py", ligne 58, dans la requête return session.request (méthode = méthode, url = url, ** kwargs) Fichier "/ home/ccnp/environments/mon_env/lib/py thon3.5/site-packages/requests/sessions.py ", ligne 508, dans la requête resp = self.send (prep, ** send_kwargs) Fichier" /home/ccnp/environments/my_env/lib/python3.5 /site-packages/requests/sessions.py ", ligne 618, dans l'envoi r = adapter.send (request, ** kwargs) Fichier" /home/ccnp/environments/my_env/lib/python3.5/site- packages/requests/adapters.py ", ligne 440, en envoi timeout = timeout Fichier" /home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connectionpool.py ", ligne 601 , dans urlopen chunked = chunked) Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connectionpool.py", ligne 357, dans _make_request conn.request (méthode, url , ** httplib_request_kw) Fichier "/ u sr/lib/python3.5/http/client.py ", ligne 1107, dans la requête self._send_request (méthode, url, body, headers) Fichier" /usr/lib/python3.5/http/client.py " , ligne 1152, dans _send_request self.endheaders (body) Fichier "/usr/lib/python3.5/http/client.py", ligne 1103, dans les têtes d'extrémité self._send_output (message_body) Fichier "/ usr/lib/python3.5/http/client.py ", ligne 934, dans _send_output self.send (msg) Fichier" /usr/lib/python3.5/http/client.py ", ligne 877, dans l'envoi self.connect() Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connection.py", ligne 166, connect conn = self._new_conn() Fichier "/ home/ccnp /environments/my_env/lib/python3.5/site-packages/urllib3/connection.py ", ligne 141, dans _new_conn (self.h ost, self.port), self.timeout, ** extra_kw) Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/util/connection.py", , ligne 73, dans create_connection chaussette.connect (sa) Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/eventlet/greenio/base.py", ligne 247, connect self._trampoline (fd, write = True) Fichier "/home/ccnp/environments/my_env/lib/python3.5/site-packages/eventlet/greenio/base.py", ligne 207, dans _trampoline mark_as_closed = self._mark_as_closed) Fichier "/ home/ccnp /environments/my_env/lib/python3.5/site-packages/eventlet/hubs/ init .py ", ligne 163, dans le trampoline return hub.switch() Fichier"/home/ccnp/environments/my_env/lib/python3.5/paquet-site/eventlet/hubs/hub.py ", ligne 295, dans le commutateur return self.greenlet.switch() eventlet.timeout.Timeout: 10 secondes

+0

Vous pouvez utiliser eventlet.Timeout (5) ici qui sera pendant 5 secondes –

+0

ive essayé, mais il me donne un problème avec certains https –

+0

Pouvez-vous poster le code que vous avez essayé et aussi l'erreur s'il vous plaît –

Répondre

0

je pense avoir trouvé la solution

au lieu de eventlet la demande i eventlet le beautifulsoup comme celui-ci

try: 
    html = requests.get(enlance, verify=False, timeout=5) 

except Exception as e: 
    print(e) 
else: 
    with eventlet.Timeout(5): 
     bsObj = BeautifulSoup(html.text, "html.parser", from_encoding="iso-8859-1")