I've created a script in python to get a 200
status code issuing a post http requests but when I run my script I get 403
instead. It seems that I followed the way how the requests is being sent in chrome dev tools.
To do it manually - go to that page, select 6
as size and then hit the add to cart
button.
How can I do the same using the script below?
I've tried with:
import requests
from bs4 import BeautifulSoup
main_url = 'https://www.footlocker.co.uk/en/homepage'
post_url = 'https://www.footlocker.co.uk/en/addtocart?'
params = {
'SynchronizerToken': '',
'Ajax': True,
'Relay42_Category': 'Product Pages',
'acctab-tabgroup-314207586604090': None,
'Quantity_314207586604070': '1',
'SKU': '314207586604070'
}
with requests.Session() as s:
r = s.get(main_url)
soup = BeautifulSoup(r.text,"lxml")
#parsing token to reuse within data
token = soup.select_one("[name='SynchronizerToken']")['value']
params['SynchronizerToken'] = token
res = s.post(post_url,params=params,data=params,headers={
'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
'referer': 'https://www.footlocker.co.uk/en/p/nike-signal-dmsx-men-shoes-73190?v=314207586604',
'accept': 'application/json, text/javascript, */*; q=0.01'
})
print(res.status_code)
Current status:
403
Expected status:
200
from Trouble getting desired response issuing a post requests
Nice article. It's very helpful to me. Thank you for share with us. If you want to remove line breaks from paragraph then check Remove Line Breaks Online Tool.
ReplyDelete