Python请求POST add项

2024-10-04 03:20:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在一个特定的站点上模拟在线购物,但是,我一直在尝试用Python请求发布表单数据。我已经设法让这个工作的测试网站为这种类型的测试。这个新网站是有点不同,我正试图找出我将如何让它正常工作。我使用的是requests和BeautifulSoup4。你知道吗

我可以去一个特定的链接,刮某些信息,但有点困惑,当谈到我应该张贴。“action”属性显示一个uri/url:“https://www.hottopic.com/on/demandware.store/Sites-hottopic-Site/default/Product-Detail/C1555946480”。当我在chromedev工具中查看时,它显示:“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)

然后,我尝试继续到购物车页面,并再次刮,但我在购物车没有得到任何项目。我一直在忙着治疗,饼干,还有其他我能找到的关于这个的东西。谢谢你的帮助。你知道吗


Tags: storehttpscomdefaulturlsourceapplicationon