TimeoutError: [WinError 10060] Попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный промежуток времени, - PullRequest
0 голосов
/ 26 октября 2018
from urllib.request import Request, urlopen
import urllib.request,urllib.parse,urllib.error
from bs4 import BeautifulSoup
from collections import Counter

URL = 'https://www.zomato.com/bangalore/koramangala-restaurants?all=1&page=%d'
NPAGES = 1

def fetch_html(page_number):
    req = Request(URL % page_number,headers={'User-Agent': 'Mozilla/5.0'})
    ufile = urllib.request.urlopen(req)
    html = str(ufile.read().decode('utf-8'))
    return html 

Я получаю ошибку ниже при выполнении кода выше.

D:\Learning\zomato>python zomato.py
Traceback (most recent call last):
  File "zomato.py", line 40, in <module>
    run()
  File "zomato.py", line 31, in run
    htmls = [fetch_html(page_number) for page_number in range(1, NPAGES+1)]
  File "zomato.py", line 31, in <listcomp>
    htmls = [fetch_html(page_number) for page_number in range(1, NPAGES+1)]
  File "zomato.py", line 11, in fetch_html
    ufile = urllib.request.urlopen(req)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 222, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 525, in open
    response = self._open(req, data)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 543, in _open
    '_open', req)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 503, in _call_chain
    result = func(*args)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 1360, in https_open
    context=self._context, check_hostname=self._check_hostname)
  File "C:\Program Files\Python37\lib\urllib\request.py", line 1320, in do_open
    r = h.getresponse()
  File "C:\Program Files\Python37\lib\http\client.py", line 1321, in getresponse
    response.begin()
  File "C:\Program Files\Python37\lib\http\client.py", line 296, in begin
    version, status, reason = self._read_status()
  File "C:\Program Files\Python37\lib\http\client.py", line 257, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Program Files\Python37\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "C:\Program Files\Python37\lib\ssl.py", line 1052, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Program Files\Python37\lib\ssl.py", line 911, in read
    return self._sslobj.read(len, buffer)
TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respon

д

Я попытался запустить программу из командной строки администратора, но это также не помогло. Я искал здесь в Stackoverflow, но я не нашел никакого соответствующего ответа. Я устал от этих предложений, но это не решило проблему. Может кто-нибудь предложить, что должно быть исправлено в моем коде.

...