Python запрашивает POST добавить товар в корзину - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь эмулировать покупки в Интернете на определенном сайте, однако я застрял при попытке опубликовать данные формы с запросами Python. Мне удалось заставить это работать на тестовых сайтах, сделанных для такого рода тестирования. Этот новый сайт немного отличается, и я пытаюсь понять, как заставить его работать должным образом. Я использую запросы и BeautifulSoup4.

Я могу перейти по определенной ссылке, почерпнуть определенную информацию, но я немного сбит с толку, когда речь заходит о том, ГДЕ я должен публиковать. Атрибут «action» показывает uri / url: «https://www.hottopic.com/on/demandware.store/Sites-hottopic-Site/default/Product-Detail/C1555946480". Когда я смотрю в Chrome Dev Tools, он показывает:« https://www.hottopic.com/on/demandware.store/Sites-hottopic-Site/default/Cart-AddProduct?format=ajax" в качестве URL-адреса запроса. Я не уверен, что делать отсюда.

import requests
from bs4 import BeautifulSoup

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36',
    'content-type': 'application/x-www-form-urlencoded',
    'keep-alive': 'true'
}

url = 'https://www.hottopic.com/product/funko-disney-pixar-toy-story-4-pop-buzz-lightyear-vinyl-figure/11692586.html'

session = requests.Session()
source = requests.get(url, headers=headers)
cookies = source.cookies.get_dict()
# source = session.get(url, headers=headers)

soup = BeautifulSoup(source.text, 'lxml')
add_to_cart_url = soup.find_all('form', class_='pdpForm')[0]['action']
dwcont = add_to_cart_url.split('/')[-1]
# add_to_cart_url = 'https://www.hottopic.com/on/demandware.store/Sites-hottopic-Site/default/Cart-AddProduct?format=ajax'
url = 'https://www.hottopic.com/on/demandware.store/Sites-hottopic-Site/default/Product-Detail/' + dwcont
print(url)

# headers = {
#   'authority': 'www.hottopic.com',
#   'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Safari/537.36',
#   'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
#   'accept-encoding': 'gzip, deflate, br',
#   'accept-language': 'en-US,en;q=0.9,ko-KR;q=0.8,ko;q=0.7,pt;q=0.6',
#   'content-type': 'application/x-www-form-urlencoded',
#   'x-requested-with': 'XMLHttpRequest'
# }

payload = {
    'Quantity': 1,
    'cgid': '',
    'uuid': '',
    'cartAction': 'update',
    'pid': 11692586
}

add_to_cart = session.post(url, headers=headers, data=payload, cookies=cookies)

Затем я пытаюсь перейти на страницу корзины и еще раз почистить, но в корзине нет товаров. Я возился с сессиями, файлами cookie и всем остальным, что я мог найти по этому поводу. Любая помощь приветствуется.

...