0

I'm setting up a monitor for Adidas to be notified about any changes in the website, which will notify me by email.

I'm using python 3.7

This is a pretty simple script. The script downloads the homepage of Adidas, and if it finds some text, emails me.

If it does not find some text, it waits 60 seconds and downloads the homepage again. however I keep getting a timeout error when running the script

# Import requests (to download the page)
import requests

# Import BeautifulSoup (to parse what we download)
from bs4 import BeautifulSoup

# Import Time (to add a delay between the times the scape runs)
import time

# Import smtplib (to allow us to email)
import smtplib


# This is a pretty simple script. The script downloads the homepage of VentureBeat, and if it finds some text, emails me.
# If it does not find some text, it waits 60 seconds and downloads the homepage again.

# while this is true (it is true by default),
while True:
    # set the url as the page i want to monitor,
    url = "https://www.adidas.co.uk/yeezy"
    # set the headers like we are a browser,
    headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
    # download the homepage
    response = requests.get(url, headers=headers)
    # parse the downloaded homepage and grab all text, then,
    soup = BeautifulSoup(response.text, "lxml")

    # if the number of times the word "SELECT SIZE" occurs on the page is less than 1,
    if str(soup).find("YEEZY BOOST 350 V2 ADULTS") == -1:
        # wait 60 seconds,
        time.sleep(60)
        # continue with the script,
        continue

    # but if the word  occurs any other number of times,
    else:
        gmail_user = 'example@gmail.com'  
        gmail_password = 'Password'

        sent_from = gmail_user  
        to = ['example1@gmail.com']  
        subject = 'OMG Super Important Message'  
        body = 'Hey, what up?\n\n- You'

        email_text = """\  
        From: %s  
        To: %s  
        Subject: %s

        %s
        """ % (sent_from, ", ".join(to), subject, body)

        try:  
            server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
            server.ehlo()
            server.login(gmail_user, gmail_password)
            server.sendmail(sent_from, to, email_text)
            server.close()

            print ('Email sent!')
        except:  
            print ('Something went wrong...')

        break


Traceback (most recent call last):
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 387, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 383, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 1321, in getresponse
    response.begin()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 296, in begin
    version, status, reason = self._read_status()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 257, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", line 1052, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\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 respond

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\adapters.py", line 449, in send
    timeout=timeout
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 641, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\util\retry.py", line 368, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\packages\six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 603, in urlopen
    chunked=chunked)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 387, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 383, in _make_request
    httplib_response = conn.getresponse()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 1321, in getresponse
    response.begin()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 296, in begin
    version, status, reason = self._read_status()
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\http\client.py", line 257, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 589, in readinto
    return self._sock.recv_into(b)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", line 1052, in recv_into
    return self.read(nbytes, buffer)
  File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\ssl.py", line 911, in read
    return self._sslobj.read(len, buffer)
urllib3.exceptions.ProtocolError: ('Connection aborted.', TimeoutError(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 respond', None, 10060, None))

During handling of the above exception, another exception occurred:

       Traceback (most recent call last):

          File "C:\Users\TEST\Desktop\adidas.py", line 24, in <module>
            response = requests.get(url, headers=headers)
          File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\api.py", line 75, in get
            return request('get', url, params=params, **kwargs)
          File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\api.py", line 60, in request
            return session.request(method=method, url=url, **kwargs)
          File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\sessions.py", line 533, in request
            resp = self.send(prep, **send_kwargs)
          File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\sessions.py", line 646, in send
            r = adapter.send(request, **kwargs)
          File "C:\Users\TEST\AppData\Local\Programs\Python\Python37-32\lib\site-packages\requests-2.22.0-py3.7.egg\requests\adapters.py", line 498, in send
            raise ConnectionError(err, request=request)
        requests.exceptions.ConnectionError: ('Connection aborted.', TimeoutError(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 respond', None, 10060, None))
        >>>
ppreetikaa
  • 1,149
  • 2
  • 15
  • 22
  • Possible duplicate of [Python requests error 10060](https://stackoverflow.com/questions/27752644/python-requests-error-10060) – David Zemens May 30 '19 at 12:18
  • https://stackoverflow.com/questions/46027404/python-timeouterror-winerror-10060-a-connection-attempt-failed – David Zemens May 30 '19 at 12:19
  • https://stackoverflow.com/questions/47375153/requests-get-in-python-giving-connection-timeout-error – David Zemens May 30 '19 at 12:19
  • Your traffic may be getting blocked if you're repeatedly hitting the same URL from the same IP. Can you reach the URL otherwise? – Jay May 30 '19 at 12:37

0 Answers0