Повезло если у сайта есть актуальный sitemap.xml, тогда берем все урлы оттуда и парсим. Если не уверены в полноте и корректности карты, то обходим весь сайт парсером, складываем свои урл+sitemap. Но это не всегда просто.

Сайт слишком велик и карты нет

Вариант очень частый для крупных ресурсов. Тут чаще всего спасает генерация всех страниц категорий с каждой страницей пагинации ?page=2, ?page=3 и т.д. После генерации урлов проходим на забор ссылок на товары и потом уже запускаем парсинг товаров. Если пагинации нет, но есть кнопка "показать еще", то вариант чуть медленнее, но аналогичный, парсер просто кликает на кнопку и собирает все урлы товаров.

Это тоже не всегда срабатывает, иногда сайты ограничивают полный просмотр категории. Например, не более 15 страниц выбранной категории. Тогда генерим все урлы категорий * пагинацию * на все виды сортировок.

?order=popularity,?order=popularity&page=2

?order=price,?order=popularity&page=2

?order=rating,?order=popularity&page=2

Повторно собираем все урлы товаров на основе сгенеренных урлов категорий. Иногда этого тоже может не хватить для полного сбора сайта или полного сбора выбранной категории. При переборе товаров тогда стоит еще собирать ссылки на все похожие товары, ссылки на теги. И дообходить вновь появившиеся урлы при сборе товаров. 

Далее в результатах парсинга удалить товары из тех категорий что не нужны (обычно на основе крошек). На каждом этапе сравниваем количество товаров на сайте\категории с полученными результатами. 

Это базовые стандартные подходы к сбору урл, в зависимости от ресурса можно добавить еще разные подходы.