Попытка войти на сайт онлайн-покупок и очистить сохраненные элементы (Python) - PullRequest
0 голосов
/ 25 апреля 2020

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

Код выглядит следующим образом:

from bs4 import BeautifulSoup
import requests
import os
# from requests_html import HTML, HTMLSession

# access to asos site
# download/scrape
# parse
# loop all items
# check if out of stock, if it is: email when not
# if not out of stock: move on to the next loop
# repeat every fifteen minutes (900 seconds)

Login_URL = 'https://my.asos.com/identity/login?signin=dc7235a82f20337656f54d5eec12cce9&checkout=False&showAllOptions=False'
Item_URL = 'https://www.asos.com/saved-lists/?nlid=nav%20header'

ASOS_ID = os.environ.get('ASOS_USER')
ASOS_PW = os.environ.get('ASOS_PW')

payload ={
    'Username': ASOS_ID,
    'Password': ASOS_PW
}

with requests.Session() as session:
    post = session.post(Login_URL, data=payload)
    r = session.get(Item_URL)
    print(r.text)

Однако Я столкнулся с ошибкой, которую не понимаю ...

Traceback (most recent call last):
  File "/Users/melaniecheung/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 1322, in getresponse
    response.begin()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 303, in begin
    version, status, reason = self._read_status()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/http/client.py", line 264, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
TimeoutError: [Errno 60] Operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 637, in urlopen
    retries = retries.increment(method, url, error=e, _pool=self,
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/util/retry.py", line 368, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/packages/six.py", line 686, in reraise
    raise value
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 597, in urlopen
    httplib_response = self._make_request(conn, method, url,
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/urllib3/connectionpool.py", line 317, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www.asos.com', port=443): Read timed out. (read timeout=None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/PycharmProjects/python/hello.py", line 34, in <module>
    r = session.get(Item_URL)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/requests/sessions.py", line 543, in get
    return self.request('GET', url, **kwargs)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/requests/sessions.py", line 643, in send
    r = adapter.send(request, **kwargs)
  File "/Users/PycharmProjects/python/venv/lib/python3.8/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www.asos.com', port=443): Read timed out. (read timeout=None)

Process finished with exit code 1

Я также попробовал следующее, но не сработало.

payload ={
    'Username': 'ASOS_ID',
    'Password': 'ASOS_PW'
}

Буду признателен за любую указатели. Спасибо всем!

...