Не могу спарсить данные с сайта LEROY MERLIN
При попытке get-запроса, статус код: 401 - https://leroymerlin.ru/catalogue/ Я так понимаю, что в данном случае необходимо использовать post-запрос? Но что передавать в нем?
Это ведь защита сайта от сбора информации? Как такое обходить? В какую сторону читать?
Спасибо заранее!
import requests
def get_html(url):
s = requests.Session()
response = s.get(url=url)
print(response.status_code)
def main():
get_html(url="https://leroymerlin.ru/catalogue/stroymaterialy/")
if __name__ == "__main__":
main()
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:104.0) Gecko/20100101 Firefox/104.0',
}
response = requests.get('https://leroymerlin.ru/content/elbrus/moscow/ru/catalogue.navigation.json', headers=headers)
for category in response.json()['children']:
print()
print(category['name'])
print(f" site https://leroymerlin.ru{category['sitePath']}")
print(f" json https://leroymerlin.ru/content/elbrus/moscow/ru{category['navigationChunk']}")
for subcategory in category['children']:
print(' ', subcategory['name'])
print(f"{' '*6}site https://leroymerlin.ru{subcategory['sitePath']}")
print(f"{' '*6}json https://leroymerlin.ru/content/elbrus/moscow/ru{subcategory['navigationChunk']}")
Стройматериалы
site https://leroymerlin.ru/catalogue/stroymaterialy/
json https://leroymerlin.ru/content/elbrus/moscow/ru/catalogue/stroymaterialy.navigation.json
Сухие смеси и грунтовки
site https://leroymerlin.ru/catalogue/suhie-smesi-i-gruntovki/
json https://leroymerlin.ru/content/elbrus/moscow/ru/catalogue/suhie-smesi-i-gruntovki.navigation.json
Изоляционные материалы
site https://leroymerlin.ru/catalogue/izolyacionnye-materialy/
json https://leroymerlin.ru/content/elbrus/moscow/ru/catalogue/izolyacionnye-materialy.navigation.json
....