План состоял в том, чтобы очистить веб-страницу сохраненных элементов на веб-сайте 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'
}
Буду признателен за любую указатели. Спасибо всем!