【发布时间】:2020-04-14 17:49:09
【问题描述】:
所以我正在为一个将产品添加到购物车然后结帐的网站编写一个简单的脚本。该脚本运行良好,我决定重写它以使代码更简洁,但是现在我在发出将产品添加到我以前没有遇到的购物车的发布请求时遇到了一个问题,并且该网站没有更改任何内容.我认为我的标题可能有问题,但我没有看到其他任何内容。这是我的代码。
import requests, re
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
'origin': 'https://www.colorskates.com',
'connection': 'keep-alive',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1'
}
s = requests.Session()
product = input('What shoe would you like to run for: ')
size = input('What size would you like to run for: ')
sizes = {
'35': 37,
'36': 7,
'36.5': 24,
'37': 8,
'37.5': 9,
'38': 10,
'38.5': 22,
'39': 11,
'40': 12,
'40 2/3': 187,
'40.5': 84,
'41': 13,
'41 1/3': 188,
'42': 14,
'42 2/3': 189,
'42.5': 15,
'43': 16,
'43 1/3': 190,
'44': 17,
'44 2/3': 191,
'44.5': 21,
'45': 18,
'45 1/3': 192,
'45.5': 39,
'46': 19,
'46.5': 147,
'47': 47,
'47.5': 117,
'48': 48,
'48.5': 85,
'49.5': 177
}
product_atc = product + '?action=add_product'
product_ids = int(re.search(r'\d+', product).group(0))
atc = s.post(product_atc, data={'id[2]': sizes[size], 'quantity': 1, 'products_id': product_ids}, headers=headers)
if atc.status_code not in (302, 200):
print('Error adding item to cart ' + str(atc.status_code) + '..')
else:
print('ATC Successful..')
第二张图片是发布请求中必须包含的标题和表单数据,我很确定我正确地传递了它们。
【问题讨论】:
-
你能分享正在运行的脚本版本吗?此外,除非绝对必要,否则请不要将信息作为图像共享。请参阅:meta.stackoverflow.com/questions/303812/…、idownvotedbecau.se/imageofcode、idownvotedbecau.se/imageofanexception。
-
我也只是尝试运行之前的脚本,但我收到了一个 403 错误,在我想我的 ip 可能有问题之前我没有收到,但我可能会从网站“禁止”仍然可以访问该网站并将商品添加到我的购物车,所以我不知道。