2017-09-21 2 views
0

im einig Web-Verschrottung Programm writting, aber wenn meine URL ist * .doc oder * .jpg, etc meine aktuellen Anfragen Timeout nicht und geht nicht auf die nächste URLPython 3 Anfrage, wie Sitzung zu brechen und weiter

ich habe dies:

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

können Sie mir helfen, wie die uRL zu erhalten(), aber einige für wie 10 Sekunden und dann, um die nächsten zu bewegen ??

i auch mit eventled versucht:

Import eventlet eventlet.monkey_patch()

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

und ich erhielt eine Reihe von Fehlern: letzte

Traceback (jüngste Aufforderung): Datei "emailCrawler.py", Zeile 69, in getLinks ("") Datei "emailCrawler.py", Zeile 64, in getLinks getLinks (Seite) Datei "emailCrawler.py", Zeile 64, in getLinks getLinks (Seite) Datei "emailCrawler.py", Zeile 64, in getLinks getLinks (Seite) Datei "emailCrawler.py", Zeile 64, in getLinks getLinks (Seite) Datei "emailCrawler.py", Zeile 64, in getLinks getLinks (Seite) Datei "emailCrawler.py", Zeile 25, in getLinks html = requests.get (enlance, verify = False) Datei " /home/ccnp/environments/my_env/lib/python3.5/site-packages/requests/api.py“, Linie 72, in get Rückholantrag ('get', uRL, params = params, ** kwargs) Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/requests/api.py", Zeile 58, in Anfrage Rückgabe session.request (Methode = Methode, URL = URL, ** kwargs) Datei "/ home/ccnp/umgebungen/my_env/lib/py thon3.5/site-packages/Anfragen/sessions.py " Linie 508 in Anfrage bzw. = self.send (prep, ** send_kwargs) Datei" /home/ccnp/environments/my_env/lib/python3.5 /site-packages/requests/sessions.py ", Zeile 618, in senden r = adapter.send (Anfrage, ** kwargs) Datei" /home/ccnp/environments/my_env/lib/python3.5/site- packages/requests/adapter.py ", Zeile 440, in send timeout = Zeitüberschreitung Datei" /home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connectionpool.py ", Zeile 601 , in urlopen chunked = chunked) Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connectionpool.py", Zeile 357, in _make_request conn.request (Methode, url , ** httplib_request_kw) Datei "/ u sr/lib/python3.5/http/client.py ", Zeile 1107, in Anfrage self._send_request (Methode, URL, Text, Header) Datei" /usr/lib/python3.5/http/client.py " , Zeile 1152, in _send_request self.endheaders (body) Datei "/usr/lib/python3.5/http/client.py", Zeile 1103, in Endheadern self._send_output (message_body) Datei "/ usr/lib/python3.5/http/client.py“, Linie 934, in _send_output self.send (msg) Datei "/usr/lib/python3.5/http/client.py", Linie 877, in Sende self.connect() Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/connection.py", Linie 166, in connect conn = self._new_conn() Datei „/ home/ccnp /environments/my_env/lib/python3.5/site-packages/urllib3/connection.py ", Zeile 141, in _new_conn (self.h ost, self.port), self.timeout, ** extra_kw) Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/urllib3/util/connection.py", Zeile 73, in create_connection Socke.connect (sa) Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/eventlet/greenio/base.py", Zeile 247, in Verbindung self._trampoline (fd, write = True) Datei "/home/ccnp/environments/my_env/lib/python3.5/site-packages/eventlet/greenio/base.py", Zeile 207, in _trampoline mark_as_closed = self._mark_as_closed) Datei "/ home/ccnp /environments/my_env/lib/python3.5/site-packages/eventlet/hubs/ init .py ", Zeile 163, im Trampolin zurück hub.switch() Datei"/home/ccnp/environments/my_env/lib/python3.5/site-packages/eventlet/hubs/hub.py ", Zeile 295, im Schalter zurück self.greenlet.switch() eventlet.timeout.Timeout: 10 Sekunden

+0

Sie können eventlet.Timeout verwenden (5) gefunden haben, die für 5 Sekunden wird –

+0

ive versuchte das, aber es gibt mir ein Problem mit einigen https –

+0

Können Sie den Code, was Sie versucht haben und auch den Fehler bitte –

Antwort

0

Ich glaube, ich die Lösung

statt eventlet die Anfrage i die beautifulsoup eventlet wie dieses hier

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")