Есть сайт usa.tommy.com паршу его при помощи bs4 + requests. Поле с размерами по дефолту available, спустя некоторое время с сервера приходит ответ с доступными размерами и поле меняется на disabled. Вручную перелопатил все теоретически подходящие ответы, json с размерами нигде не нашел.
Какой запрос нужно послать на сервер, чтобы получить нужный ответ?
Буду благодарен любому совету
def get_html(self, url, payload=None):
while True:
try:
proxies = {'http': self.current_proxy, 'https': self.current_proxy}
if not self.use_proxy:
proxies = {}
#time.sleep(random.randint(random.randint(6, 10), random.randint(12, 27)))
html = self.s.get(url, headers=self.HEADERS, proxies=proxies, params=payload, timeout=30, cookies=self.cookies)
if html.status_code == 200:
print(html.status_code)
if self.request_limit and self.request_limit == self.request_counter:
self.proxy.put(self.current_proxy)
self.get_cookies()
self.request_counter = 0
self.request_counter += 1
return html
elif html.status_code == 403:
print(html.status_code)
self.proxy.put(self.current_proxy)
self.get_cookies()
#time.sleep(random.randint(600,800))
else:
#time.sleep(random.randint(14, 27))
print(html.status_code)
continue
except:
if self.free_proxy:
self.current_proxy = self.proxy.get()
continue
Результат этой функции - html (ниже супом его паршу)
soup = BeautifulSoup(html.text, 'html.parser')
block_size = soup.find('ul', id='sizes').find_all('li')
for li in block_size:
if li['class'] == ['available']:
print(li)
size_list.append(li.find('span').text)