Парсинг данных по категориями из меню

Надо получить ссылки из меню на 4 категории, потом ссылки из каждой категории а потом уже собрать данные. Загвоздка в получении корректных ссылок. Получаю много лишнего. Как получить именно 4 ссылки:

введите сюда описание изображения

Также есть проблема с сохранением самого сайта. Он сохраняется со всеми подкатегориями, и при работе с ссылкой "собаки" выдает ссылки на кошек и собак, из-за этого при поиске категорий по ссылке собаки, появляются ссылки и на кошек и получается каша. Как избавится от этого?

import requests
from bs4 import BeautifulSoup

url = 'https://www.spokojenypes.cz'
def get_data(url):

    headers ={
        "User-Agent": "Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML, like Gecko) Chrome / "
                      "96.0.4664.93 Safari/537.36OPR/82.0.4227.33"
    }
    req = requests.get(url, headers)

    # запишем в файл страницу, чтоб не долбить сервер
    #    with open('index.html', 'w', encoding='utf-8') as file:
    #        file.write(req.text)
    with open('index.html', encoding='utf-8') as file:
       src = file.read()
    soup = BeautifulSoup(src, 'lxml')
    link = soup.find('div', {'id':'menu'}).find_all('li', {'data-lvl':'1'})

get_data(url)

# вот так собирает, но из другого места, хочу понять как из главного меню их получить. 
link = bs.find('section', {'class':'catTree-LowRes',}).find_all('a')

Ответы (1 шт):

Автор решения: Сергей Шашко
import requests
from bs4 import BeautifulSoup

url = 'https://www.spokojenypes.cz'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'lxml')
urls = soup.find('ul', {'class': 'categoryTree'}).findAll('li', {'data-lvl': '1'})
for x in urls:
    link = x.find('a').get('href')
    print(f'{url}{link}')

Результат:

https://www.spokojenypes.cz/chovatelske-potreby-pro-psy/
https://www.spokojenypes.cz/chovatelske-potreby-pro-kocky/
https://www.spokojenypes.cz/ostatni-zvirata/
https://www.spokojenypes.cz/veterinarni-diety/
→ Ссылка