Попробуйте очистить Instacart: Python - PullRequest
1 голос
/ 05 апреля 2020

У меня возникают проблемы при попытке сделать instacart webscrape с помощью библиотеки запросов в python. Я хочу пройти первую страницу, которая запрашивает почтовый индекс, и перейти на страницу электронной почты. Вот мой код:

import requests

session = requests.Session()
data = {"address_line_1":"MYZIPCODE"}
header = {'user-agent': "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B179 Safari/7534.48.3"}
response = requests.post('https://www.instacart.com/', headers=header, data=data)
print(response.text)

Мне было интересно, если вы, ребята, могли бы помочь.

Кстати: я использую address_line_1, потому что это имя ввода. Спасибо

1 Ответ

1 голос
/ 05 апреля 2020

Никаких гарантий, так как этот ответ является результатом некоторых кратких экспериментов, но я мог бы найти решение.

Я покопался на сайте и обнаружил, что при перезагрузке страницы начальный экран запрашивая ваш почтовый индекс / адрес электронной почты был пропущен. Затем я удалил сессионный повар ie, _instacart_session, но оставил все остальные файлы cookie без изменений, и мне было предложено войти снова.

Это говорит о том, что если вы войдете вручную с помощью браузера, а затем сохраните _instacart_session cook ie, который генерируется, вы можете обойти процесс входа в систему. Отправьте повара ie вместе с запросами, которые вы делаете в своей программе, и вы можете сразу перейти к http://instacart.com/store/NAME_OF_STORE/storefront.

Возможно, есть даже другой повар ie, который запомнит нужное вам местоположение, таким образом, в обход этого экрана выбора (но я не уверен в этом).


Редактировать: я вижу сроки доставки , перечисленные в информации JSON для каждого магазина, с URL-адреса, такие как https://www.instacart.com/v3/containers/NAME_OF_STORE/next_gen/retailer_information/content/delivery?source=web. Сначала вам нужно перейти к https://www.instacart.com/store/NAME_OF_STORE/info?tab=delivery, чтобы установить куки, иначе я получаю сообщение об ошибке Unauthorized.

Надеюсь, это поможет!

...