Web-Scraping | При парсинге данных ошибки 400, 401 и 403
Начал изучать способы Web-Scraping'а и столкнулся с такой проблемой как ошибки 400, 401 и 403 при получении фалов в Json формате.
Для примера взял сайт Магнита, и была цель на выходе из программы получать карточки товаров.(https://magnit.ru/promo/)
Как видно на прикреплённых скриншотах, нужные мне данные отображаются корректно и на выходе я получаю их в Json формате.
Однако, если я захочу открыть этот файл в другом окне, то получаю такую картину:
И это даже не касается Headrs
или то что я сижу через WebDriver
на Silenium
. Я просто захожу туда со своего обычного браузера и не могу получить доступ к этому словарю.
И вот хочу узнать в чём проблема и каким образом её можно решить? Или же это проблема с фаерволом, то что он фильтрует запросы и допускает к этому API только админов?(Но как тогда я получаю доступ к этому файлу на главной странице и в ответе получаю все эти карточки?) Может есть какие-нибудь библиотеки на Python, чтобы можно было как-то выгружать этот файл?
Да, конечно есть костыли, как можно это решить опять же через Selenium
, просто прогружать всю страницу и через page_source
и по итогу получать HTML файл, который можно спокойно пропарсить и получить эти карточки, однако этот способ мне совсем не нравиться, так как всё зависит от стабильного подключения к самому сайту, которое не всегда может быть и код просто работает дольше(из-за наагрузок могут выходить исключения на подобии TimeoutExeption
и по итогу мне по новой придётся долго ждать, когда он прогрузит все страницы и сохранит мне их все в нужную мне директорию).