Я пытаюсь узнать, как создаются заголовки, когда пользователь вводит почтовый индекс и выдает команду «POST» (нажав кнопку «Купить сейчас») со следующего веб-сайта:
Я считаю, что интересная часть этого запроса "POST" заключается в том, как сайт формирует следующие заголовки, но я не могу понять, как это происходит ( Я подозреваю, что есть некоторый код JavaScript / Angular, который отвечает):
x-ccwfdfx7-a
x-ccwfdfx7-b
x-ccwfdfx7-c
x-ccwfdfx7-d
x-ccwfdfx7-f
x-ccwfdfx7-z
Поэтому я попытался использовать модуль requests
для входа в систему в качестве гостя, чтобы узнать больше о том, как работает этот поток :
- с запросами. Сессия ()
- с cloudscraper.create_scraper ()
Пока что все мои попытки потерпели неудачу. Вот мой код:
import requests
from requests_toolbelt.utils import dump #pip install requests_toolbelt
import cloudscraper #pip install cloudscraper
#with requests.Session() as session:
with cloudscraper.create_scraper(
browser={
'custom': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'
}
) as session:
CITY = XXXXX
ZIPCODE = XXXXX
#get cookies
url = 'http://www.peapod.com'
res1 = session.get(url)
session.headers['Referer'] = 'https://www.peapod.com/'
#get more cookies
url = 'http://www.peapod.com/login'
res2 = session.get(url)
#get more cookies
url = 'https://www.peapod.com/ppd/bundles/js/ppdBundle.js'
res3 = session.get(url)
#get all the service locations
response = session.get('https://www.peapod.com/api/v4.0/serviceLocations',
params={
'customerType': 'C',
'zip': ZIPCODE
}
)
try:
loc_id = list(
filter(
lambda x: x.get('location', {}).get('city') == CITY, response.json()['response']['locations']
)
)[0]['location']['id']
except IndexError:
raise ValueError("Can't find City '{}' -> Zip {}".format(CITY, ZIPCODE))
#login as guest
response = session.post('https://www.peapod.com/api/v4.0/user/guest',
json={
'customerType': 'C',
'cities': None,
'email': None,
'serviceLocationId': loc_id,
'zip': ZIPCODE
},
params={
'serviceLocationId': loc_id,
'zip': ZIPCODE
}
)
Похоже, что появляется сообщение об ошибке "Я заблокирован", которое, по моему мнению, связано с тем, что я не могу понять, как устроен браузер. заголовки ccwfdfx7
в запросе "POST" (я подозреваю, что существует некоторый код JavaScript / Angular, который отвечает за создание этих заголовков, но я не могу его найти и надеюсь, что кто-то может помочь ...)
На том же компьютере браузер Chrome может нормально входить в систему