python购物车结算不了_Python3.x无法将项目添加到购物车上

我试着写一个蜘蛛来买鞋子footlocker.com网站. 当我将项目添加到购物车时,我向服务器发布了正确的数据,但我收到了以下信息:

“无法将项目添加到购物车:CloseX

如果你再试一次,你也许能钓到一双。由于需求量大,将滤鞋器释放到现场,以避免出现任何问题。”

我仔细地将请求和数据与浏览器进行了比较,没有发现任何区别。在

代码如下:def __init__(self):

print('Initialize')

# Log in data

self.login_email = self.login_password = ''

self.session = ''

# Product data

self.product_url = ''

self.model = self.sku = ''

self.requestKey = ''

self.model_name = self.selectedPrice = self.qty = self.size = ''

self.header = {

'User-Agent':

'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 '

'(KHTML, like Gecko) Chrome/57.0.2950.4 Safari/537.36'

}

def set_info(self, login_email, login_password, product_url, qty, size):

self.login_email = login_email

self.login_password = login_password

self.product_url = product_url

self.qty = qty

self.size = size

def login(self):

print('Log in ...')

# Open log in dialog and get request key

# --------------------------------------------------------------------------------------------------------------

login_page_url = 'https://www.footlocker.com/account/default.cfm'

self.session = requests.session()

response = self.session.get(login_page_url)

request_key_pattern = re.compile('id=\"requestKey\" value=\"(\w{16})\"')

self.requestKey = request_key_pattern.findall(response.text)[0]

# --------------------------------------------------------------------------------------------------------------

# Log in

# --------------------------------------------------------------------------------------------------------------

login_post_url = 'https://www.footlocker.com/account/default.cfm?action=accountSignIn'

params = {

'companyCode': '21',

'requestKey': self.requestKey,

'email': self.login_email,

'password': self.login_password

}

response = self.session.post(login_post_url, data=params)

if response.status_code == 200:

print('200: Log in successfully')

else:

print(str(response.status_code) + ': Log in failed')

sys.exit(1)

# --------------------------------------------------------------------------------------------------------------

def set_product_info(self):

print('Extract product information ...')

# Regular expression

model_pattern = re.compile('model:(\d{6})')

sku_pattern = re.compile('sku:(\d{8})')

request_key_pattern = re.compile('value=\"(\w{16})\" name=\"requestKey\"')

model_name_pattern = re.compile('name=\"model_name\" value=\"([\w ]*-[\w \']*)\"')

selected_price_pattern = re.compile('name=\"selectedPrice\" value=\"(\$\d*.\d*)\"')

response = self.session.get(self.product_url)

if response.status_code == 200:

self.model = model_pattern.findall(self.product_url)[0]

self.sku = sku_pattern.findall(self.product_url)[0]

self.requestKey = request_key_pattern.findall(response.text)[0]

self.model_name = model_name_pattern.findall(response.text)[0]

self.selectedPrice = selected_price_pattern.findall(response.text)[0]

else:

print(response.status_code + ': Failed to open the product page')

sys.exit(2)

def add_to_cart(self):

print('Add item into the cart ...')

cart_url = 'http://www.footlocker.com/catalog/miniAddToCart.cfm?secure=0&'

params = {

'storeCostOfGoods': '0.00',

'lineItemId': '',

'model': self.model,

'requestKey': self.requestKey,

'hasXYPromo': 'false',

'sameDayDeliveryConfig': 'false',

'sku': self.sku,

'the_model_nbr': self.model,

'model_name': self.model_name,

'skipISA': 'no',

'selectedPrice': self.selectedPrice,

'qty': self.qty,

'size': self.size,

'fulfillmentType': 'SHIP_TO_HOME',

'storeNumber': '00000',

'coreMetricsDo': 'true',

'coreMetricsCategory': 'Add to Wish List - PDP',

'quantity': self.qty,

'inlineAddToCart': '1'

}

response = self.session.post(cart_url, data=params)

file = open('response.html', 'w')

file.write(response.text)

if response.status_code == 200:

print('Item is added to the cart')

else:

print('Failed to add item')

sys.exit(3)

谢谢你的帮助。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值